Plaggerに挑戦

最近ミクシイから遠ざかっている。友人の日記くらいはチェックしておきたいのだけど、サイトに行って構造化されていないページの中から日記の一覧にたどり着いて、個別にチェックして・・・というのがうっとうしく感じる。というのはきっといいわけなのだけど。
で、先日Plaggerでミクシイの日記とかをメールに飛ばせるという話を耳にした。ちょうど以前から気になっていたPlaggerの使い道ができたので、インストールしてみた。
ちなみにPlaggerは、たとえばRSSフィードを受信してメールに送るというような処理を入力、加工、出力みたいな段階に分けて、それぞれにモジュールを当てはめることでフィルタの大量生産を可能とするタイプのPerlプログラムのようである。今回の場合、入力にミクシイのデータ読み出し、出力にメール送信をくっつけて使うことになる。フィルタの組み合わせはYAML形式で記述する。複雑なウェブページを頻繁にチェックするのがいやな人にとってはなかなかうれしそうな香りのするものなのだ。
まず、自宅Debian(testing)サーバへのインストール。こちらではPerlから新規に入れる方法が紹介されているが、それもちょっとめんどうなのでDebian Hansode Packageというのを使ってみた。うちではここに書かれた方法に従って普通にインストールできた。Plaggerのバージョンは0.7.11で、CPAN最新の0.7.12、svnの0.7.13に比べると少し古い。動かしてみるだけならいいかな、と。
さて、適当なconfig.yamlを作って起動してみると、なにやらttファイルがないとか言われてしまう。調べてみると、assetの罠というのがあるらしい。結局subversionリポジトリからPlagger一式を落としてきて、assetsディレクトリを自分のところにコピー。config.yamlに記述を追加したら動作した。
configは以下のようにしてみた。初めてなので何の工夫もないが、perldocでオプションとか調べながらやれば何とかなるらしい。

global:
  assets_path: /home/inoue/perl/lib/Plagger/assets
  timezone: Asia/Tokyo
plugins:
  - module: CustomFeed::Mixi
    config:
      email: mixi登録メールアドレス
      password: パスワード(一度plaggerを実行するとエンコードされる。)
      fetch_body: 1
      show_icon: 0 (アイコンいらないので0にしてみた。)
      feed_type:
        - RecentComment
        - FriendDiary
        - Message
  - module: Publish::Gmail
    config:
      mailto: 自分のメールアドレス。宛先。
      mailfrom: Fromにしたいメールアドレス。デフォルトはplagger@localhostらしい。

これで

plagger -c config.yaml

を実行すると、ミクシイの友人日記、コメント、受信メッセージがメールで送られてきた。たまにこのコマンドをたたいてメールを読めばそれだけでミクシイチェックができる。なかなか楽ちんかも。
と思ったのだが、一つだけ。受信メッセージのメールがエラーになって、サーバ管理者=自分に送られてきてしまう。調べると、差出人メールアドレスが

From: "=?UTF-8?B?44Of44Kv44K344Kj44Oh44OD44K744O844K45Y+X5L+h566x?=" 

のように改行されてしまっている。どうやらGmail.pmでencode()した時に文字数がMIMEの1行をオーバーし、切断されてしまっているようだ。安直な方法はFromが短くなるようにMixi.pmを書き換えることかもしれない。もっと根本的な対応は、Encode::encodeの仕様解析かな?
さて、次はdel.icio.usとhatebuをシンクロするというのをやってみようかな