Changeset 241

Show
Ignore:
Timestamp:
08/26/06 01:13:13 (2 years ago)
Author:
miya
Message:

Plagger::Event: added
Plagger::Entry: integrate Plagger::Event
Publish::iCal: integrate Plagger::Event
CustomFeed::AmazonWebService: integrate Plagger::Event
Plagger::Data: fix strptime to set time_zone

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plagger/trunk/lib/Plagger/Date.pm

    r240 r241  
    4242    my($class, $pattern, $date) = @_; 
    4343    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    ); 
    4548    $class->parse($format, $date); 
    4649} 
  • plagger/trunk/lib/Plagger/Entry.pm

    r238 r241  
    1919        meta    => {}, 
    2020        enclosures => [], 
     21        events     => [], 
    2122    }, $class; 
    2223} 
     
    102103} 
    103104 
     105sub add_event { 
     106    my($self, $event) = @_; 
     107    push @{ $self->{events} }, $event; 
     108} 
     109 
     110sub event { 
     111    my $self = shift; 
     112    wantarray ? @{$self->{events}} : $self->{events}->[0]; 
     113} 
     114 
     115sub events { 
     116    my $self = shift; 
     117    wantarray ? @{$self->{events}} : $self->{events}; 
     118} 
     119 
     120sub has_event { 
     121    my $self = shift; 
     122    scalar @{$self->{events}} > 0; 
     123} 
     124 
    1041251; 
    105126 
  • plagger/trunk/lib/Plagger/Plugin/CustomFeed/AmazonWebService.pm

    r232 r241  
    66use Net::Amazon::Request::Keyword; 
    77use Encode; 
     8use Plagger::Event; 
    89 
    910sub register { 
     
    5960            $entry->date($date); 
    6061 
     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 
    6169            $feed->add_entry($entry); 
    6270        } 
     
    9199 
    92100*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] }; 
    94102 
    951031; 
  • plagger/trunk/lib/Plagger/Plugin/Publish/iCal.pm

    r233 r241  
    3535 
    3636    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; 
    4044 
    41         my $date = $entry->date; 
    4245        my $event = Data::ICal::Entry::Event->new; 
    4346        $event->add_properties( 
    44             summary     => $entry->title . ' - ' . $entry->author
    45             description => $entry->summary || $entry->body, 
     47            summary     => $ev ? $ev->summary : $entry->title
     48            description => $ev ? $ev->description : $entry->summary || $entry->body, 
    4649            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, 
    5052        ); 
    5153        $ical->add_entry($event);