『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)),