Bulknews::Subtech RSSフィード

2006/09/06 (水) このエントリーを含むブックマーク

no title

ちょっとやりたいことがあって、Filter::Rule の改造と、Filter::CloneFeed というものを作ってみました。やりたいことが何かというのは長くなるので、後回しにして、まずは Filter::Rule の修正内容と、Filter::CloneFeed の説明を。

残念ながら、車輪の再発明でした。これは SmartFeed を使うとシンプルにできます。

  - module: CustomFeed::AmazonWebService
    config:
      title: Amazon - New Books
      developer_token: XXXXXXXXXXXXXXXXXXXX
      associate_id: xxxxxx-22
      keywords:
        - 川原正敏

  - module: SmartFeed
    rule:
      module: Ahead
    config:
      id: new

  - module: Publish::iCal
    config:
      dir: /home/miya/ical
      filename: %t.ics
    rule:
      expression: $args->{feed}->id ne 'new'

  - module: Publish::Gmail
    config:
      mailto:   xxx@gmail.com
      mailfrom: xxx@mizzy.org
      mailroute:
        via: smtp
        host: localhost
    rule:
      expression: $args->{feed}->id eq 'new'

Filter::Rule の POD には書いてありますが、SmartFeed と Filter::Rule は補完する関係にあり(どちらも同じフェーズで動作する)、Filter::Rule は既存のフィードからRuleにマッチしないエントリを削除するのに対し、SmartFeed は Rule にマッチするエントリをバーチャルなフィードとして新しく生成します。(iTunes のスマートプレイリストや iPhoto のスマートアルバムを思い出してもらえばOK)

ここでは Rule::Ahead にマッチするフィード SmartFeed をつくり、id:new を与え、iCal では new でないもの(=すべて)、Gmail には new なものを送っています。