SweetPotato::Plagger このページをアンテナに追加 RSSフィード

2007-01-27

[] Filter::WriteSource(仮)を使ってみた 03:42  Filter::WriteSource(仮)を使ってみた - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  Filter::WriteSource(仮)を使ってみた - SweetPotato::Plagger  Filter::WriteSource(仮)を使ってみた - SweetPotato::Plagger のブックマークコメント

つまり,

** assets/plugins/Filter-EntryFullText/hoge.yaml

hogeをfugaしてpiyoする。

>||

...

||<

こんな感じのはてな記法で書かれた部分のソースコードをファイルに保存するということかな。

このフォーマットが変わらない限りは,ファイルにコピペする手間が省けるわけだから便利だ。

サンプルconfigにうちのRSSが指定されていたので,実際に試してみた。

config.source.yaml

Filter::Ruleでソースコードが存在するエントリを絞り込んで処理したかったんだけど,両Filterのソースとプラグインの実行フェーズを見ると,

  • Filter::WriteSource: update.entry.fixup フェーズにて実行
  • Filter::Rule: smartfeed.feed フェーズにて実行

と,Filter::Ruleの方が後に実行されるらしい。それじゃあ意味ねーよということで以下のソースではFilter::Rule部分をコメントアウトしてある。

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://plagger.g.hatena.ne.jp/SweetPotato/rss2
# - module: Filter::Rule
#   rule:
#     expression: $args->{entry}->title =~ /(?:scraper|upgrader)/
  - module: Filter::WriteSource
    config:
      dir: ./src

実行結果

ディレクトリ ./src/$feed_dir/$entry_dir (2つの変数にはdigestが入る)の下に,確かにファイルが生成されていた。

h4とpreの間に段落が入っている場合も,preの内容が正しく保存された。

ファイルの先頭に必ず改行が入るのはなぜだろう。まあ実行に際しては問題ないからいっか。

h4に日本語が含まれているとファイル名が化けるっぽい。「環境」が「迺ー蠅」に,「結果」が「邨先棡」になっていた。

トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20070127