続・Plagger を Cygwin にインストールしてみた

目標がlivedoor ReaderGmailに送ることなので、そこまでのメモ。
CPANからインストールしたので、~/.cpanができてて、Plagger一式もその下にある。
~/.cpan/build/Plagger-0.7.2/examples以下のサンプルに合わせる*1ために、~/.cpan/build/Plagger-0.7.2以下を~/plaggerにコピー。

bash$ pwd
/home/oto-oto-oto
bash$ mkdir plagger
bash$ cp -r ./.cpan/build/Plagger-0.7.2/* ./plagger/

あと、yaml を設定しないといけないっぽいので、exampleslivedoorreader2gmail.yaml~/plaggerにコピーして編集。

global:
  plugin_path:
    - /home/oto-oto-oto/plagger/assets/plugins
  assets_path: /home/oto-oto-oto/plagger/assets
  timezone: Asia/Tokyo
  log:
    level: info

plugins:
  - module: Subscription::LivedoorReader
    config:
      username: gmailのid
      password: gmailのパスワード
      mark_read: 0

  - module: Publish::Gmail
    config:
      mailto:   (gmailのid)@gmail.com
      mailfrom: (gmailのid)@gmail.com
      mailroute:
        via: smtp_tls
        host: smtp.gmail.com:587
        username: gmailのid
        password: gmailのパスワード

mark_readは、1だと既読にして、0だと未読のまま。
転送がうまくいくまで何回か試行錯誤しそうなので、とりあえず0にしておく。
ここまでやって、とりあえず実行。((Emacsで自動保存しながら編集してたのではまった。plagger実行時、パスワードのところがbase64エンコードされて上書きされるので競合してしまう。自動保存を一時的に外すか、エディタを抜けるかした方がいい。))

bash$ plagger
Plagger->bootstrap: /usr/bin/config.yaml: No such file or directory at /usr/bin/plagger line 24

デフォルトでは/usr/bin/config.yamlを読むみたい。今回は直接指定する。

plagger -c plagger/livedoorreader2gmail.yaml 
Can't locate JSON/Syck.pm in @INC (@INC contains: /usr/bin/lib /usr/lib/perl5/5.8/cygwin /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/cygwin /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/cygwin /usr/lib/perl5/vendor_perl/5.8 .) at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 5.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8/Plagger.pm line 252.

JSON/Syckが無いと怒られた。CPANから入れる。

bash$ perl -MCPAN -e shell
cpan> i /JSON/
(中略)
Module          JSON::Syck      (A/AU/AUTRIJUS/YAML-Syck-0.45.tar.gz)
(中略)
cpan> install JSON::Syck
cpan> q
bash$ plagger -c plagger/livedoorreader2gmail.yaml
Base class package "WWW::Mechanize" is empty.
    (Perhaps you need to 'use' the module which defines that package first.)
 at /usr/lib/perl5/site_perl/5.8/Plagger/Mechanize.pm line 3
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8/Plagger/Mechanize.pm line 3.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 7.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8/Plagger/Plugin/Subscription/LivedoorReader.pm line 7.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8/Plagger.pm line 252.

今度はWWW::Mechanizeが無いと怒られた。CPANから入れる。

bash$ perl -MCPAN -e shell
cpan> i /Mechanize/
(中略)
Module          WWW::Mechanize  (P/PE/PETDANCE/WWW-Mechanize-1.18.tar.gz)
(中略)
cpan> install WWW::Mechanize
cpan> q
bash$ plagger -c plagger/livedoorreader2gmail.yaml > log20060624plagger.log
Plagger [info] plugin Plagger::Plugin::Subscription::LivedoorReader loaded.
Plagger [info] plugin Plagger::Plugin::Publish::Gmail loaded.
Plagger::Plugin::Subscription::LivedoorReader [info] You have 60 unread item(s) on livedoor Reader.
Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded.
Plagger::Plugin::Publish::Gmail [info] Sending 404 Blog Not Found to (your id)@gmail.com
(略)

うまくいったようだ。
あー、しんど。

*1:無理に合わせることは無いと思うけど