diff options
Diffstat (limited to 'script/bookmarks_load.pl')
-rwxr-xr-x | script/bookmarks_load.pl | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/script/bookmarks_load.pl b/script/bookmarks_load.pl new file mode 100755 index 0000000..2687684 --- /dev/null +++ b/script/bookmarks_load.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl +use strict; +use warnings; +use FindBin; +use lib "$FindBin::Bin/../lib"; +use Bookmarks; +use Bookmarks::Utils; +use YAML; + +my $links; +{ + my $yaml; + local $/; + $yaml = <>; + $links=YAML::Load($yaml); +} + +my %fields=( + description => 'title', + extended => 'descr', + created => 'add_date', + modified => 'last_access_date', +); + +for my $link (@$links) { + print "Loading $link->{href}\n"; + my $dblink=Bookmarks::M::DB::Links->find_or_create({ + url => $link->{href}, + }); + if (!Bookmarks::Utils::check_link($link->{href})) { + warn "Link $link->{href} non valido, marco come tale\n"; + $link->{title}.=' [INVALID]'; + } + $link->{created}||=time(); + $link->{modified}||=time(); + while (my ($f1,$f2) = each %fields) { + $dblink->$f2($link->{$f1}); + } + $dblink->icon(Bookmarks::Utils::get_site_icon($link->{href})); + $dblink->update(); + for my $tagname (@{$link->{tags}}) { + my $dbtag=Bookmarks::M::DB::Tags->find_or_create({ + name => $tagname, + }); + $dblink->add_to_tags({ tag => $dbtag}); + } +} |