読者です 読者をやめる 読者になる 読者になる

『書物の迷宮』予告篇

思い出したように本を読み、本の読み方を思い出す

CompositeFeedとSmartFeed

似てるかと思ったけど,全然挙動が違う風味?

  • Plagger::Plugin::Filter::CompositeFeed
    • 購読リストにあるものを一つのフィードのエントリーとして扱う.
      • Subscription::Configで2つのURLを読み込む
        • Publish::Feedすると,2つのURLを含んだ一個のフィードができた.
      • Aggregator::Simpleが取得したフィード/エントリーは無視.
  • 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