Plagger
最近話題になっているPlaggerについて手を動かしてみた。
Plaggerについての高橋メソッドなプレゼン資料が以下にある
某所でPlaggerのプレゼンをしてきた - walf443's blog
YAMLというフォーマットで、各種フィードやサービスに対応するプラグイン(perlで実装されている)の設定や組合せを自由に記述して、Plaggerに食わせてあげれば、出力結果をファイルとして出力したり、Gmailに転送したり、いろんなことができるものらしい。
以下のサイトを参考にさせていただき、なんとかWindows+ActivePerl環境にインストールができるところまではいけた。が、とにかく、うわさどおりセットアップがしんどいかった。
しげふみメモ : Windowsで Plagger インストール#1 http://wg.at.webry.info/200604/article_4.html
参考にしたサイトとは微妙にバージョン(Plaggerのバージョンは今日の時点で0.7.2)が違うので、よくわからないが、とにかく
cpan> install Plagger
の最中に、何回も
問題が発生したため、Perl Command Line Interpreter を終了します
というダイヤログが表示されてperl.exeが終了する(cpanのinstall処理は継続される)。*1
cpanモジュールのコンパイル環境のためにhttp://www.microsoft.com/japan/msdn/vstudio/express/までそろえたのに、、、
どうやらmake test中になんらかの問題が発生しているらしい。この時点でC:\Perl\bin\plagger.batはできていない。
http://digit.que.ne.jp/work/index.cgi?Perl%e3%83%a1%e3%83%a2%2f%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%28CPAN%29のコメント欄にあるように、force installをためしてみた。
cpan> force install Plagger
おお、なんとかインストールできたみたい。早速確認してみる。
C:\>plagger -v Plagger version 0.7.2
お次は、YAMLを書いてみる。PlaggerのHelloWorldとも言える、Bloglinesの未読をGmailに転送するというお題。
C:\Perl\cpan\build\Plagger-0.7.2\examples\bloglines2gmail.yaml
と前述のサイトを参考に以下のように記述。
global: plugin_path: - C:\Perl\site\lib\Plagger\Plugin assets_path: C:\Perl\site\lib\Plagger\assets timezone: Asia/Tokyo log: level: info cache: base: c:\ plugins: - module: Subscription::Bloglines config: username: hogehoge@gmail.com password: password-of-bloglines mark_read: 1 fetch_meta: 1 - module: Widget::BloglinesSubscription - module: Publish::Gmail config: mailto: hogehoge@gmail.com mailfrom: hogehoge@hoge.hoge.com mailroute: via: smtp host: where-to-smtpserver
hogehoge@gmail.comはgmailのメールアドレス(都合Bloglinesのアカウントと共通)
hogehoge@hoge.hoge.comは適当なメールアドレス。
Bloglinesのパスワードと、SMTPサーバのアドレスは適当に設定。
エディタでC:\Perl\bin\config.yamlとして保存。エディタは一旦終了する(Plaggerを実行したら、Bloglinesのパスワードをbase64化したものに書き換えにいくのでエディタが開いているとconfig.yamlが変更できないため)。さもないと、
Plagger [fatal] C:\Perl\bin\config.yaml: Permission denied at line 98
なるエラーが発生するので注意。
結果、ちゃんとGmail宛てにメールを送信してくれました。
*1:追記:追ってperl.exeが終了するのはlibxml.dllとわかる、対応策はPlaggerインストール続き - pomo123の日記まで。