Plaggerの中身
肝はPlagger.pm のrun()
Pluginモジュールはそれぞれ,フックをPlaggerモジュールに登録してる.Plaggerがフックを使う順番をまとめると次のようになっていた.
subscription.load for type (subscription->types) aggregator.aggregate.TYPE aggregator.finalize for feed (update->feeds) for entry (feed->entries) update.entry.fixup update.feed.fixup update.fixup smartfeed.init for feed (update->feeds) smartfeed.entry smartfeed.finalize publish.init for feed (update->feeds) for entry (feed->entries) publish.entry.fixup publish.feed for entry (feed->entries) publish.entry publish.finalize
ここで,"xxx.xxx"というのがフックの名前,文法は適当.ちなみに"aggregator.aggregate.TYPE"でTYPEは変数.ユーザが作成した任意の文字列が入っている.なんとなく,わかったようなわからないような感じなので,これらのフックがどのモジュールで使われているかを調べてみた.
フックフック
Plagger-0.5.5 で,Plugin配下のモジュールがどのフックを使っているのかを調べたのが以下のリスト
--- hook subscription.load --- ./CustomFeed/Mixi.pm ./CustomFeed/Mailman.pm ./CustomFeed/Yahoo360JP.pm ./CustomFeed/Frepa.pm ./CustomFeed/POP3.pm ./Subscription/OPML.pm ./Subscription/Bloglines.pm ./Subscription/HatenaRSS.pm ./Subscription/Odeo.pm ./Subscription/Config.pm --- hook aggregator.aggregate.TYPE --- ./CustomFeed/Mixi.pm TYPE=mixi ./CustomFeed/Mailman.pm TYPE=mailman ./CustomFeed/Yahoo360JP.pm TYPE=yahoo360jp ./CustomFeed/Frepa.pm TYPE=frepa ./CustomFeed/POP3.pm TYPE=pop3 ./Subscription/Bloglines.pm TYPE=bloglines ./Aggregator/Xango.pm TYPE=feed ./Aggregator/Simple.pm TYPE=feed --- hook aggregator.finalize --- ./Aggregator/Xango.pm --- hook update.entry.fixup --- ./Filter/StripRSSAd.pm ./Filter/FloatingDateTime.pm ./Filter/2chNewsokuTitle.pm ./Filter/DeliciousFeedTags.pm ./Filter/ResolveRelativeLink.pm ./Filter/TTP.pm ./Filter/Regexp.pm ./Filter/HatenaBookmarkTag.pm ./Filter/Delicious.pm ./Filter/HatenaDiaryKeywordLink.pm ./Filter/RSSTimeZoneString.pm ./Filter/BulkfeedsTerms.pm ./Filter/FeedBurnerPermalink.pm --- hook update.feed.fixup --- ./Filter/HatenaBookmarkUsersCount.pm ./Filter/tDiaryComment.pm --- hook update.fixup --- ./Filter/URLBL.pm --- hook smartfeed.init --- ./SmartFeed.pm --- hook smartfeed.entry --- ./SmartFeed.pm --- hook smartfeed.finalize --- ./SmartFeed.pm --- hook publish.init --- ./Publish/Delicious.pm ./Publish/HatenaBookmark.pm ./Publish/Gmail.pm ./Notify/Campfire.pm ./Notify/Growl.pm --- hook publish.entry.fixup --- ./Publish/Delicious.pm ./Publish/HatenaBookmark.pm ./Widget/HatenaBookmarkUsersCount.pm ./Widget/Delicious.pm ./Widget/HatenaBookmark.pm --- hook publish.feed --- ./Search/Rast.pm ./Search/Namazu.pm ./Publish/Pipe.pm ./Publish/MTWidget.pm ./Publish/Gmail.pm ./Publish/Feed.pm ./Publish/CHTML.pm ./Publish/PSP.pm ./Publish/PDF.pm ./Publish/Speech.pm ./Publish/Debug.pm ./Publish/JavaScript.pm ./Notify/MSAgent.pm ./Notify/Eject.pm ./Notify/IRC.pm --- hook publish.entry --- ./Publish/Spotlight.pm ./Publish/Delicious.pm ./Publish/HatenaBookmark.pm ./Notify/Campfire.pm ./Notify/Growl.pm ./Widget/HatenaBookmarkUsersCount.pm ./Widget/Delicious.pm ./Widget/HatenaBookmark.pm --- hook publish.finalize --- ./Search/Rast.pm ./Search/Namazu.pm ./Publish/MTWidget.pm ./Publish/CHTML.pm ./Publish/PSP.pm ./Publish/Speech.pm ./Notify/Eject.pm
こうやってみると,それぞれのフックで何をさせたいのかがなんとなく理解できるような気が.あ,smartfeedはこれだけで完結してて,まだ中身を見ていないのでわからない.
ためいき
それにしても,0.5.6が出てるよ.中身変わっちゃってたりするのかなぁ〜