Publish::iCal patch
『Plagger で Amazon2iCal 改良』 にて、Data::ICal で ORGANIZER をちゃんとしたフォーマットにする方法がわからん、と言っていたのですが、やりかたわかりました。
$event->add_properties(
organizer => [ 'MAILTO:gosukenator@gmail.com', { CN => 'Gosuke Miyashita' } ],
);
Data::ICal::Entry の pod にちゃんと書いてありましたね。
というわけで、organizer をちゃんとセットするように、Publish::iCal を書き換えてみました。Email::Address は Filter::ExtractAuthorName から拝借してます。
Index: plagger/trunk/lib/Plagger/Plugin/Publish/iCal.pm =================================================================== --- plagger/trunk/lib/Plagger/Plugin/Publish/iCal.pm (revision 231) +++ plagger/trunk/lib/Plagger/Plugin/Publish/iCal.pm (revision 233) @@ -6,4 +6,5 @@ use Data::ICal; use Data::ICal::Entry::Event; +use Email::Address;sub register {
@@ -34,4 +35,8 @@for my $entry ($feed->entries) {
-
my $address = ( Email::Address->parse($entry->author) )[0]; -
my $mail = eval { $address->address } || 'nobody@example.com'; -
my $name = eval { $address->name } || $entry->author; -
my $date = $entry->date; my $event = Data::ICal::Entry::Event->new;
@@ -39,5 +44,5 @@
summary => $entry->title . ' - ' . $entry->author,
description => $entry->summary || $entry->body,
-
organizer => $entry->author,
-
organizer => [ "MAILTO:$mail", { cn => $name } ], url => $entry->link, dtstart => join('', split('-', $date->ymd)),