plaggerの雑記
plaggerとは?
plaggerとは、perlのモジュールの一つで、「それPla」と呼ばれるほど全てに対して万能な使い道のあるソフトウェアです。
主な動作はライブラリという形で用意され、使用者はライブラリを組み合わせることで自由な使い道が可能となります。
具体的には、
- 1:ソース元を決める(どこから情報を集めるか)
- 2:情報の取り扱いを決める(どのように情報を編集するか)
- 3:情報の出力を決める(PDF、CSV、CHTML、gmailに送るetc...)
という要素をyamlというファイルで定義して実行します。
plaggerでできること。
「腹減った」と検索したら自動的にピザ屋に連絡してデリバリするといったユニークなものから、マンガの発売日になったらtwitterでお知らせ、
駅の遅延情報を定期的に送信、好きなブログを定期的に巡回など、アイデア次第でどんなことにも使えます。
このページの目的
plaggerに関する日本語が少ないため、メモ帳代わりに自分が躓いた箇所を載せておこうと思います。記事が書き貯まってアクセスが多かった場合には、インストールを含めた個別カテゴリに分類しようと思います。私はwindowsXP+ActivePerlの環境でplaggerを利用しています。
CustomFeed::TaiyoshaComicの文字化け
CustomFeed::TaiyoshaComicは、太洋社からマンガの発売日一覧を取得するモジュールです。同様なものにManganomori.pmがあります。
●「〜」などの記号が文字化けした
私が体験した問題ですが、取得した〜などの記号が文字化けすることがありました。結論から言えば、エンコードが間違っていたのですが、
文字化けを改善したyamlを掲載しておきます。
このyamlでは、コミック一覧を取得→csvファイルで出力を行っています。実行は
plagger -c yamlファイルフルパス
で行うことができます。
yaml実行バッチを作る
yamlを実行するには、フルパスorディレクトリの移動が必要になるので、GUI環境だとひと手間かかります。そこでバッチファイルを用意し、yamlをドラッグ&ドロップで実行できるようにしました。
plagger -c %1
なんとも簡素な1文のコマンドですが、これをメモ帳で保存、.batの拡張子にしてください。
yamlを実行するときは、製作したバッチファイルにドラッグするだけで、%1がドラッグされたファイルのフルパスに置き換わって実行されます。
列車の遅延情報でplagger
CustomFeed::LDTrafficはSVNにはのって居ない野良プラグインのようです。以下のブログの方が製作されました。
Izumiのblog-[Plagger] 列車運行情報をPublishしてみる
有名なManganomori.pmをもとに作ったものらしいですが、電車の遅延情報を取得するCustomfeedです。定期的に実行してケータイなどに送れば便利なプラグインだと思います。
●
フィルターが上手く動作しなかった問題
フィルターを指定すると上手く動作しなかったので、解決したyamlの一部を載せます。
- module: Filter::Rule
rule:
expression: $args->{entry}->title =~ /(小田急|京王|相模線).*?/;
module: Deduped
yamlは"utf-8n"で保存してください!EUCやSJISなどでは、プログラムが読み込んだときに日本語が文字化けを起こし、正しいフィルターが作動しませんでした。
プラグイン情報
plaggerのプラグインはCVNで管理されています。以下のロゴにリンクを張るので、そちらをご覧ください。
タグ:Other