summaryrefslogtreecommitdiff
path: root/script/bookmarks_load.pl
diff options
context:
space:
mode:
Diffstat (limited to 'script/bookmarks_load.pl')
-rwxr-xr-xscript/bookmarks_load.pl47
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});
+ }
+}