「PlaggerになくてYahoo!pipesにあるもの」は書き方が悪かったのではなく Plagger を理解してないだけ

「PlaggerになくてYahoo!pipesにあるもの」は書き方が悪かった について。

Plagger について理解できてないだけです。書き方の問題じゃありません。まず、

このときPublish::Gmailがおかしいなと思った。なにがおかしいかというとフィルター機能があることだ。

Publish::Gmail にはフィルタ機能はありません。Plagger に実装されているものを、Publish::Gmail で利用しているだけです。

また、Publish::Gmail で利用しているのは、実際はフィルタ機能ではなく、ルール機能だったりします。似たような機能でややこしいかもしれませんが、Plagger では フィルタとルールは別物です。

本来フィルターの機能はFilterが担うべきで、Publishのプラグインにつけるべき機能ではない。

はい、Plagger はちゃんとそうなってますよ。

例えばBloglineからフィードを取得し、その中からいくつかのブログのフィードを各ブログごと取り出し各ブログごと異なる条件でフィルタリングしたり、はてなブックマークに登録し、残りのフィードはそのままGmailに送るということは本来的にはできないのでは無いかと考えた。

できます。たとえば、mizzy.org だけローマ字変換して Gmail へ、残りはそのままはてブへ、ということであればこんな感じ。(設定はかなりはしょってますが。)

plugins:
  - module: Subscription::Bloglines

  - module: Filter::Romanize::Japanese
    rule:
      expression:  $args->{feed}->title eq 'mizzy.org'

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->title eq 'mizzy.org'

  - module: Publish::HatenaBookmark
    rule:
      expression: $args->{feed}->title ne 'mizzy.org'

この例では、2つの Publish プラグインの出力対象フィードが別だから、プラグイン毎に rule 設定してるけど、両プラグインが同じフィードを出力するのであれば、Filter::Rule プラグインでフィルタすれば、rule を指定する必要がなくなる。

まあ、この辺りは分かりやすくはないから、誤解するのもしょうがいない気がするけれど、設定例だけ見て、そこから推測したものがあたかも実際の Plagger の仕様であるかのように書くのはやめようよ。