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.comgmailのメールアドレス(都合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の日記まで。