Changeset 241
- Timestamp:
- 08/26/06 01:13:13 (2 years ago)
- Files:
-
- plagger/trunk/lib/Plagger/Date.pm (modified) (1 diff)
- plagger/trunk/lib/Plagger/Entry.pm (modified) (2 diffs)
- plagger/trunk/lib/Plagger/Event.pm (added)
- plagger/trunk/lib/Plagger/Plugin/CustomFeed/AmazonWebService.pm (modified) (3 diffs)
- plagger/trunk/lib/Plagger/Plugin/Publish/iCal.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plagger/trunk/lib/Plagger/Date.pm
r240 r241 42 42 my($class, $pattern, $date) = @_; 43 43 Encode::_utf8_on($pattern); 44 my $format = DateTime::Format::Strptime->new(pattern => $pattern); 44 my $format = DateTime::Format::Strptime->new( 45 pattern => $pattern, 46 time_zone => Plagger->context->conf->{timezone} || 'local', 47 ); 45 48 $class->parse($format, $date); 46 49 } plagger/trunk/lib/Plagger/Entry.pm
r238 r241 19 19 meta => {}, 20 20 enclosures => [], 21 events => [], 21 22 }, $class; 22 23 } … … 102 103 } 103 104 105 sub add_event { 106 my($self, $event) = @_; 107 push @{ $self->{events} }, $event; 108 } 109 110 sub event { 111 my $self = shift; 112 wantarray ? @{$self->{events}} : $self->{events}->[0]; 113 } 114 115 sub events { 116 my $self = shift; 117 wantarray ? @{$self->{events}} : $self->{events}; 118 } 119 120 sub has_event { 121 my $self = shift; 122 scalar @{$self->{events}} > 0; 123 } 124 104 125 1; 105 126 plagger/trunk/lib/Plagger/Plugin/CustomFeed/AmazonWebService.pm
r232 r241 6 6 use Net::Amazon::Request::Keyword; 7 7 use Encode; 8 use Plagger::Event; 8 9 9 10 sub register { … … 59 60 $entry->date($date); 60 61 62 my $event = Plagger::Event->new; 63 $event->dtstart($date); 64 $event->dtend( $date->clone->add( hours => 1 ) ); 65 $event->summary($entry->title . ' - ' . $entry->author); 66 $event->organizer($entry->author); 67 $entry->add_event($event); 68 61 69 $feed->add_entry($entry); 62 70 } … … 91 99 92 100 *Net::Amazon::Property::Music::author = *Net::Amazon::Property::Music::artist; 93 *Net::Amazon::Property::DVD::author = sub { return ( $_[0]->starring() )[0] };101 *Net::Amazon::Property::DVD::author = sub { return ( $_[0]->starring() )[0] }; 94 102 95 103 1; plagger/trunk/lib/Plagger/Plugin/Publish/iCal.pm
r233 r241 35 35 36 36 for my $entry ($feed->entries) { 37 my $address = ( Email::Address->parse($entry->author) )[0]; 38 my $mail = eval { $address->address } || 'nobody@example.com'; 39 my $name = eval { $address->name } || $entry->author; 37 my $ev = $entry->event; 38 my $organizer = $ev ? $ev->organizer : $entry->author; 39 my $address = ( Email::Address->parse($organizer) )[0]; 40 my $mail = $address ? $address->address : 'nobody@example.com'; 41 my $name = $address ? $address->name : $organizer; 42 my $dtstart = $ev ? $ev->dtstart : $entry->date; 43 my $dtend = $ev ? $ev->dtend : $entry->date; 40 44 41 my $date = $entry->date;42 45 my $event = Data::ICal::Entry::Event->new; 43 46 $event->add_properties( 44 summary => $e ntry->title . ' - ' . $entry->author,45 description => $e ntry->summary || $entry->body,47 summary => $ev ? $ev->summary : $entry->title, 48 description => $ev ? $ev->description : $entry->summary || $entry->body, 46 49 organizer => [ "MAILTO:$mail", { cn => $name } ], 47 url => $entry->link, 48 dtstart => join('', split('-', $date->ymd)), 49 dtend => join('', split('-', Plagger::Date->from_epoch(epoch => $date->epoch + 60*60*24)->ymd)), 50 dtstart => Date::ICal->new( epoch => $dtstart->epoch )->ical, 51 dtend => Date::ICal->new( epoch => $dtend->epoch )->ical, 50 52 ); 51 53 $ical->add_entry($event);
