package Plagger::Plugin::CustomFeed::Manganomori;

http://plagger.g.hatena.ne.jp/SweetPotato/20061119/1163938121

まんがの森、2008.04月分でDateTime::Format::Strptime死ぬらしい。

plugins:
  - module: CustomFeed::Manganomori
    config:
      month: 2008.04
 item->{day}: 31
Invalid day of month (day = 31 - month = 04 - year = 2008)
 at /usr/local/lib/perl5/site_perl/5.8.8/DateTime/Format/Strptime.pm line 444

原因

まんがの森のデータにありえない日付のデータが含まれている。
日付の整合性が無いため、DateTime::Format::Strptimeで死ぬ

対策

日付の整合を行うため DateTime->add() にて日付を相対的に増やす

patch

45c45
<     $feed->title("manganomori $year.$month");
---
>     $feed->title("橸・X R~bN
                              Xg $year.$month");
59,76d58
<   my $dt = Plagger::Date->new( year => $year,
<                           month  => 1,
<                           day    => 1,
<                         );
<
<   $dt->add( months => ($month - 1), days => ($item->{day} - 1) );
<   $year = $dt->year;
<   $month = $dt->month;
<   $item->{day} = $dt->day;

before

$year  = 2008;
$month = 04;
$day   = 31;

my $dt = DateTime->new( year   => $year,
                        month  => $month,
                        day    => $day,
                      );

print $dt->ymd;

after

$year  = 2008;
$month = 04;
$day   = 31;

my $dt = DateTime->new( year   => $year,
                        month  => 01,
                        day    => 01,
                      );

$dt->add( months => ($month - 1), days => ($day - 1) );
print $dt->ymd;

GoogleiPodの予定が詰まったヽ(゜∀゜)ノ