2006/09/06 (水)

ちょっとやりたいことがあって、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 なものを送っています。
コメント