Praggerさわってみた
「はらへった」と検索するとピザが注文されることで有名なPlaggerのruby版。ruby1.8.5以上が必要なのだけれども、aptitudeで落とそうとすると最新が1.8.2になっていたので、結局ソースからビルド。
落としたら後はサクサク……と行きたいところだったのだけれども、各モジュール間のデータの受け渡しの形式が良くわからなくて苦労した。
下のは2chのヘッドラインRSSから特定のカテゴリのヘッドラインを1行で出力するYAML。
- module: RSS::load config: url: http://headline.2ch.net/bbynews/news.rss - module: Filter::get_title - module: Filter::grep config: regex: "\[[ビ速二]" - module: Filter::subs config: regex: "\[[ビ速二][+軍]\] " to: "" - module: concat config: - module: stdin - module: Filter::subs config: regex: "\n" to: "" - module: Filter::uniq - module: stdout
Filter::get_titleとFilter::uniqは一応自作。ほとんど手がかかってないけど。
def get_title(config,data) r = [] data.each {|i| r.push(eval("i.title")) } return r end
def uniq(config, data) return data.uniq end
実行方法。
$ ./pragger -c rss2ch.yaml < output1.txt > output2.txt ... $ cat output2.txt 【米国】ロサンゼルス南部でファストフード店廃止案 【滋賀】医療保険金還付と不審電話相次ぐ 【企業】赤福、年内営業再開は困難 14日に改善計画書 $
標準入出力を使っているのは変えたい。あとはデータ量を抑えたいのでリストの要素数を制限するフィルタを作るか。
Leave a Reply