Aggregator::AsyncとPublish::OPML組み合わせるとおかしい理由

読了まで:約1分


ようやく分かった。

多分だけど Aggregator::Async が customfeed.handle で URI のデータが Feed であろうがなかろうが真を返していて、かつ Publish::OPML が$context->subscription->feeds を参照しているため、だと思う。

つまり相性の問題。

customfeed.handle で真を返された URI はパースが成功されたとみなされて、$context->subscription->delete_feed( $feed )されないので、もし対象が Feed で無かったとしても、パース出来なかった URI が残ってしまうっぽい。

Aggregator::Simple 使った場合で問題ないのは、パースできなかった場合、customfeed.handle が偽を返しているため。

あと customfeed.handle で問答無用で真を返してるタイプのプラグインはどれでもこうなると思う。

これの解決策としては、

  1. Aggregator::Simple 使う
  2. customfeed.handle で Feed を生成できなかった場合に削除するようにする
  3. Filter 系のプラグイン書いてパースされなかった URI を削除するようにする

ぐらい。

なんか面倒だなぁ。

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。