by @nyarla

Plaggerのフェーズの改造試案

Plagger の動作フェーズについては mizzy.org : Plagger プラグインの実行フェーズ を参照。

で、customfeed.handle とか aggregator.*系のフェーズを

crawler.init
crawler.crawl
crawler.finalize
# この二つはページをパースするときに呼ばれる
crawler.filter.feed
crawler.entry.fixup

こんな感じにして、Plagger::FeedParser をプラグイン化。Plagger::Plugin::FeedParser 系は基本的に crawler.filter.feed で動作して、run_hook_once で呼ばれて、crawler でゲットしてきたデータを Plagger::Feed に変換する、と言う感じ。

これだと今の Plagger の Aggregator::*系でデータとって来たけどパースできなかったから破棄、そのあと CustomFeed::Config でもう一回 get してパースしてごにょごにょっていう無駄がなくなると思う。あーでも Cache 使ってる場合は問題ないかな。あとこの辺り rule で何とかできそう。

あと CustomFeed::Config は crawler.filter.feed、Filter::EntryFullText は crawler.entry.fixup で動作させれば良い感じ。

と言うのを考えたんだけど、なんかいまいち。つーか Plagger は基本的に Feed をパースするんだから、Plagger::FeedParser プラグイン化しなくてもよくね?とか。あと自分が気がついてない問題とか有りそう。

#FIXME