8 use Data::Dump qw(dump);
10 my $UserID = $ENV{UserID} || die "usage: UserID=1234 key=abcd $0";
11 my $key = $ENV{key} || die "key required";
13 my $FETCH = $ENV{FETCH} || 0;
15 my $url = "https://api.zotero.org/users/$UserID/items?key=$key&format=atom&content=json&order=dateModified&sort=desc";
17 my $file = "$UserID.atom";
20 if ( $FETCH && mirror( $url => $file ) == RC_NOT_MODIFIED ) {
25 my $feed = XMLin( $file );
26 #warn "# feed ",dump($feed);
30 foreach my $entry ( keys %{ $feed->{entry} } ) {
31 warn "ENTRY $entry\n";
33 $id =~ s{.+/items/}{}; # leave just ID
35 my $e = $feed->{entry}->{$entry};
37 foreach my $link ( @{ $e->{link} } ) {
38 warn "# link ",dump($link);
39 if ( $link->{rel} eq 'up' ) {
40 my $up = $link->{href};
41 $up =~ s{.+/items/}{};
43 push @{ $tree->{$up} }, $id;
47 if ( $e->{content}->{'zapi:type'} eq 'json' ) {
48 my $json = $e->{content}->{content};
50 $e->{json} = decode_json $json;
51 warn ">> $id ", dump $e->{json};
57 warn "# tree ",dump( $tree );