summaryrefslogtreecommitdiff
path: root/script/bookmarks_load.pl
blob: 8535348c8b17ab4e70cc84539d6726cf06ed5373 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/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 $icon=do {local $/;open my $fh,'<:raw','favicon.ico';<$fh>};
print "Icon is $icon\n";
 
my %fields=(
    description => 'title',
    extended => 'descr',
    created => 'add_date',
    modified => 'last_access_date',
);
 
Bookmarks::M::DB::Links->db_Main()->{sqlite_handle_binary_nulls} = 1;
Bookmarks::M::DB::Links->autoupdate(0);
 
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->icon($icon);
    print 'Set icon to: ',$dblink->icon(),"\n";
    $dblink->update();
    print 'Set icon to: ',$dblink->icon(),"\n";
    for my $tagname (@{$link->{tags}}) {
        my $dbtag=Bookmarks::M::DB::Tags->find_or_create({
            name => $tagname,
        });
        $dblink->add_to_tags({ tag => $dbtag});
    }
}