#!/usr/bin/perl

use strict;
use warnings;

use Net::Delicious;
use Netscape::Bookmarks;
use Netscape::Bookmarks::Category;
use Netscape::Bookmarks::Link;
use Date::Parse;
use Data::Dumper;

my %folders;
my $folder;
my $tags;
my $link;
my @tags;
my @posts;
my %flist;

my $debug = 0;

# Add your details here
my $del = Net::Delicious->new({user=>"",
                                pswd=>""});

my $bookmarks = Netscape::Bookmarks->new;

foreach ($del->tags())
{
	$folders{$_->{tag}} = new Netscape::Bookmarks::Category ({'title' =>
$_->{tag}});
	push @tags, $_->{tag};
}

if ($debug)
{
	print Dumper (%folders);
	print Dumper (@tags);
}

if ($debug)
{
	@posts = $del->recent_posts();
}
else
{
	@posts = $del->all_posts();
}

foreach (@posts)
{
	$link = Netscape::Bookmarks::Link->new({'TITLE'       => $_->description(),
					        'DESCRIPTION' => $_->extended(),
					        'HREF'        => $_->href(),
					        'ADD_DATE'    => str2time($_->time())});

	print $_->tags."\n";
	foreach (split (/ /, $_->tags()))
	{
		if ($debug) {print "$_\n";}

		if (!$flist{$_})
		{
			$flist{$_} = Netscape::Bookmarks::Category->new($folders{$_});
		}
		if ($debug) {print Dumper($flist{$_});}
		$flist{$_}->add (\$link);
		if ($debug) {print $flist{$_}->as_string;}
	}
}

while (my ($key, $bmark) = each (%flist))
{
	$bookmarks->add (\$bmark);
}

print $bookmarks->as_string;
