plaggerすげええええ

今日も今日とてこんな時間までPlaggerを入れるために必死になってた。やったことは

  1. 初めてのCPAN(と、そのための準備)
  2. 初めてのPlagger設定、config.yaml
  3. いろいろモジュール

初めてのCPAN

Debianなのでapt-get installするだけといえばそれだけ。それを準備しておいてから

# cpan

とすると最初に各種設定。プログラムがないよ、って言われたらウィンドウもうひとつ開いてapt-get install & which して、フルパスを打ち込む。まあ設定なんて適当にすればいいんだろうけど、ここでちょっとハマったのは

  • inactivity_timeout >= 1
  • prerequisites_policy = [ask]

としてしまったから。依存パッケージをインスコしますか?って訊かれるんだけど、訊かれてる間にtimeoutしてしまうというどうしようもないコンボ。というわけで、正しく?は

  • inactivity_timeout = [0]
  • prerequisites_policy = [ask]

とすれば大丈夫っぽい。あとurllistだけど、オススメはftp://ftp.nara.wide.ad.jp/pub/CPAN/。ここなら大抵のモジュールがあるっぽい。逆にjaistとか変なとこはモジュールがあったりなかったりなのでやめといた方が無難。これでCPANの準備はできたので、

# cpan
cpan>test Plagger

とかやってみる。まあ一回目はダメだと思うので、根気よく依存パッケージをインストールしていく。XML::LibXMLとかXML::RSS::LibXMLとかで苦労すると思うけど、いろいろやってるうちにできてしまった。ここでlibxml2のDebianパッケージを勝手にいじるのはしない方がいいと思う。やるならaptitudeで。で、Debian etchなら/usr/bin/plaggerができてるはず。どんなモジュールを入れたらいいか参考/参考2

Plagger設定

%which plaggerで見つかっても実行するのはまだ早い。モジュールの設定をしておく必要がある。plaggerを動かすためには、コンフィグファイルとassetディレクトリが必要。コンフィグファイルに各種設定を書いておいて、モジュールプラグインに必要なモノをassetディレクトリに入れておく必要がある。コンフィグファイルについては結構ハマった。この辺りを参考に書けばたぶん大丈夫→参考1/参考2/参考3

次にassetディレクトリ。ここにasset/commonとかasset/pluginとか作って、各プラグインが使う正規表現とかを放り込むんだけど、こんな感じで何となく分かってくれれば。

で、実行

config.yamlにアカウント設定とかを入れて、実行

% plagger -c config.yaml

すると…

この期に及んでまだモジュールが足りないらしい。Net::SMTP::TLSというのを入れてもう一回やるとgmailにメールが!すげえよ!感動した!で、今度はそのうちWeb鯖にRSSで出力するか、それともページにして出力したいなぁ。

最終的にPlaggerを使ってWebサービスとかしたら面白そうだけど。今のRSSリーダって、認証つきのとこはどこも読めないからね。フォーマットの違う情報系列をPerl Mongerたちのパワーでいろいろゴリ押しして機械処理してしまうっていうところになんか男気を感じる。

サービスを提供する側(mi*iとか)は機械処理されたくないからあえてRSS化してないはずなのに。

本格設定

いろいろなとこからとってきて本格設定しよう…と思ったら、なんかサンプルyamlが消えてやがんの。

% locate examples | grep yaml
%|

む、空しい…

まあ、それはともかくとして、今までFEEDBRINGERを使っていたので、そこからOPMLを吐き出してそのOPMLをSubscription::OPMLに食わせようとしてみる。

   modules: Subscription::OPML
     config:
       url: file:///hogehoge/feedbringer-export.xml

なんかstrictがどうのとエラーが出るので、昔とった杵柄ならぬ昔のBloglinesのアカウントを思い出してやり直してみると上手く動く。で、何が違うかっていうと、bloglinesOPMLFEEDBRINGER、主にtext/title属性とhtmlUrl属性の有無が違うのかな。うーむ。ニャンだかなぁ…ソースをパッと見た限りじゃあよく分からんけど。

やっぱりtext属性なのがダメだったらしい。エラーが出なくなるまで手動でtitle属性に書き換えたら動いた。うーむ。あとはCacheが動いてないから、既読とか関係ナシなんだよな。そこを何とかしたいな。それから、RSSとか全部時系列に一列に並べたいんだがどうなんだろう。OPMLといいこの辺といいもう少し何とかならんもんか。え?自分でHackしろだって?

… (;'A`)y-…

最後に

ちょっとしたシェルスクリプトを作って/etc/cron.dailyに仕込む。まあ、つけっぱってわけじゃないからあんまし意味ないかもだけど。というわけでいい加減寝よう。うん。

#!/bin/bash

plagger -c /path/to/config.yaml