Changeset 353
- Timestamp:
- 03/07/06 00:49:02
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger/Plugin/CustomFeed/iTunesRecentPlay.pm
r282 r353 43 43 44 44 open my $fh, "<:encoding(utf-8)", $file 45 or return $c lass->log(error => "$file: $!");45 or return $context->log(error => "$file: $!"); 46 46 47 47 my $feed = Plagger::Feed->new; … … 65 65 my $entry = Plagger::Entry->new; 66 66 67 my $dt = DateTime::Format::W3CDTF->parse_datetime($data->{date});68 unless ($dt) {69 $context->log( warn => "Can't parse $data->{date}");70 next;71 }72 if( $data->{date} and $data->{artist} and $dt->epoch > time - $self->conf->{reload_period} ){67 if( $data->{date} and $data->{artist} ){ 68 my $dt = DateTime::Format::W3CDTF->parse_datetime($data->{date}); 69 unless ($dt) { 70 $context->log( warn => "Can't parse $data->{date}"); 71 next; 72 } 73 73 for my $key (keys %$data){ 74 74 $entry->meta->{$key} = $data->{$key}; 75 75 } 76 $context->log( info => $data->{artist} . ' ' . $data->{track}); 76 $entry->date(Plagger::Date->from_epoch($dt->epoch)); 77 $context->log( debug => $data->{artist} . ' ' . $data->{track}); 77 78 $feed->add_entry($entry); 78 79 } trunk/plagger/lib/Plagger/Plugin/Publish/Playlog.pm
r280 r353 6 6 use XML::Atom::Entry; 7 7 8 sub rule_hook { 'publish.feed' }9 10 8 sub register { 11 9 my($self, $context) = @_; 12 10 $context->register_hook( 13 11 $self, 14 'publish. feed' => \&feed,12 'publish.entry' => \&entry, 15 13 ); 16 14 } 17 15 18 sub feed{16 sub entry { 19 17 my($self, $context, $args) = @_; 20 18 … … 23 21 $api->password($self->conf->{password}); 24 22 25 for (@{$args->{feed}->entries}){ 26 my $entry = XML::Atom::Entry->new; 27 my $otolog = XML::Atom::Namespace->new(otolog => 'http://otolog.org/ns/music#'); 28 for my $key (keys %{$_->meta}){ 29 $entry->set($otolog, 'otolog:' . $key, $_->meta->{$key}); 30 } 31 $context->log( info => $_->meta->{artist} . ' ' . $_->meta->{track}); 32 $api->createEntry('http://mss.playlog.jp/playlog', $entry); 23 my $entry = XML::Atom::Entry->new; 24 my $otolog = XML::Atom::Namespace->new(otolog => 'http://otolog.org/ns/music#'); 25 for my $key (keys %{$args->{entry}->meta}){ 26 $entry->set($otolog, 'otolog:' . $key, $args->{entry}->meta->{$key}); 33 27 } 28 $context->log( info => $args->{entry}->meta->{artist} . ' ' . $args->{entry}->meta->{track}); 29 $api->createEntry('http://mss.playlog.jp/playlog', $entry); 34 30 } 35 31 … … 47 43 username: your-playlog-id 48 44 password: xxxxxxxx 45 rule: 46 module: Fresh 47 mtime: 48 path: /tmp/iTunesRecentPlay.tmp 49 autoupdate: 1 49 50 50 51 =head1 DESCRIPTION
