カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

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プラグイン化しなくてもよくね?とか。あと自分が気がついてない問題とか有りそう。