[rss][plagger] rss の date の解釈

w3c の ISO-8601/W3C-DTF のフォーマット

問題

Fresh ルール設定してるとはてブのお気に入りが上手く回収できない。

結論

時刻は正しい。単にローカルキャッシュが更新されていなかった。expire 期間を設定できるのかな。

Last-modified をチェックしてるのか。たしかにサーバからは 304 が返ってきてるなぁ。サーバ側で更新間隔をあけてるのかな。ブラウザで確認すると RSS 自体はちゃんと最新のを生成してるみたいだし。すると、今の Fresh 用のルールは時差が生まれるので使えないな。むむむ。

Feed 毎に最終更新日時を個別に記録しておいて、キャッシュにヒットした場合はそもそも処理しない。というか、キャッシュの最終更新日時をそのまま流用。Last-modified 使わないのは邪道。

    return if ($res->status == 304);

を Aggregator::Simple aggregate() (line 29) にアドホックに書き足してキャッシュの場合は Feed なしということにして後の処理を全部キャンセルさせることにしてみた。というかキャッシュに乗ってるときは処理したくないことって普通に多い気がしてきた。一度処理してるのは自明なわけだし。