CompositeFeedとSmartFeed
似てるかと思ったけど,全然挙動が違う風味?
- Plagger::Plugin::Filter::CompositeFeed
- 購読リストにあるものを一つのフィードのエントリーとして扱う.
- Subscription::Configで2つのURLを読み込む
- Publish::Feedすると,2つのURLを含んだ一個のフィードができた.
- Aggregator::Simpleが取得したフィード/エントリーは無視.
- Subscription::Configで2つのURLを読み込む
- 購読リストにあるものを一つのフィードのエントリーとして扱う.
- Plagger::Plugin::SmartFeed
- ruleの指定と一致するエントリー/フィードを抜き出して,仮想のフィードを生成.
- title,link,id,descriptionそれぞれの要素を設定できる
- Subscription::Configで2つのURLを読み込む
- Aggregator::Simpleが取得したフィード/エントリーをコピーして,新たなフィードを生成.
- Publish::Feedすると,2つのフィードと1個のSmartFeed製フィードが作られる.
- Rule::FeedAttrとかでidを指定すれば,SmartFeed製フィードだけPublish可.
- FeedBurnerのSmartFeedみたいな感じ.
CompositeFeedにAggregator::Simpleが取得した結果が反映されないのは,smartfeed.finalizeフェイズでの挙動がSmartFeedと違うからかな.SmartFeedは生成したフィードを購読リストに戻してるけど,CompositeFeedは戻さない?
CompositeFeedにFilter::Ruleが適用できるかどうかは試していない.
http://blog.woremacx.com/2006/05/
http://mizzy.org/program/plagger_plugin_phase.html
ここらを見比べると,なんとなくFilter::Ruleでdedupedとかできそうな予感がする…….
ちなみに,こんな感じのconfig.yamlを書いて実験しました.
global: assets_path: /Users/hogehoge/plagger/assets timezone: Asia/Tokyo cache: base: /Users/hogehoge/plagger/temp/ log: level: info plugin_path: - /Users/hogehoge/plagger/lib/Plagger/Plugin plugins: - module: Subscription::Config config: feed: - url: http://d.hatena.ne.jp/hazy-moon - url: http://b.hatena.ne.jp/hazy-moon # - module: SmartFeed # config: # title: SmartFeed # id: smartfeed # link: http://d.hatena.ne.jp/hazy-moon/ # description: This feed made by SmartFeed # rule: # module: Fresh # duration: 7 days - module: Filter::CompositeFeed - module: Publish::Feed config: format: Atom dir: /Users/hogehoge/Sites/Plagger/feed filename: composite.atom