巷で話題のPlaggerをやってみようと思い、暇そーにしてる研究室のサーバに入れて遊んでみた。
以下、FreeBSDシステムの場合のインストール時のメモ
FreeBSDにはports様が居るから余裕だぜと思い
cd /usr/ports/textproc/p5-Plagger
make install
→見事にこけた!orz
どうやらKDEを入れたときにHTML::Tidyと競合してしまうtidy-xxxxx(名前忘れた
が入ってしまっていた模様。どうせサーバだしKDEはもう使わんだろうと思い強制削除。
その後はwikiをたよりにチェックしつつモジュールのインストールの繰り返し。その後、Plagger本体をSubversionで最新版をチェックアウトしてmake。なんとかPlaggerのインストール完了。
早速設定ファイル書いてテストしてみる。
test.yaml
plugins:
- module: Subscription::Config
config:
feed:
- url: https://hoge.sub.jp/blog/atom.xml
- module: Publish::Debug
ココのサイトのfeedを標準出力に吐き出すだけ。plaggerのあるフォルダに移動していざ実行。
perl plagger -c /HOME/plagger_conf/test.yaml
Plagger [info] plugin Plagger::Plugin::Subscription::Config loaded.
Plagger [info] plugin Plagger::Plugin::Publish::Debug loaded.
Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded.
Plagger::Plugin::Aggregator::Simple [info] Fetch https://hoge.sub.jp/blog/atom.xml
Plagger::Cache [debug] Cache HIT: Aggregator-Simple|https://hoge.sub.jp/blog/atom.xml
Plagger::Plugin::Aggregator::Simple [debug] 304: https://hoge.sub.jp/blog/atom.xml
(略:codeの嵐)
'utc_year' => 2007,
'utc_rd_days' => 732572,
'offset_modifier' => 0
}, 'DateTime' ),
'type' => 'feed',
'title' => 'Lyo.blog'
}, 'Plagger::Feed' );
ちゃんと動いたっぽい。
次にBloglinesの購読内容をGmailにすっとばすようにする。
これはexampleの中から取ってきてちょこっと修正しただけ。
bloglines2gmail.yaml
# Fetch Bloglines unread items using Bloglines Web Services API
# and send HTML emails for each feed (not entry)
global:
# Set timezone to your local one
timezone: Asia/Tokyo
# this make logger logs important information
log:
level: info
plugins:
# Fetch your Bloglines updated entries using Bloglines API
# Mark them read if the retrieval succceeds.
# Fetch optional metadata by using listsubs API
- module: Subscription::Bloglines
config:
username: Bloglines_account_mail
password: Bloglines_pass
mark_read: 1
#fetch_meta: 1
# Add "Add to del.icio.us" Widget in the Email body
- module: Widget::Delicious
# Add "Manage Bloglines Subscription of this feed" Widget
- module: Widget::BloglinesSubscription
# Send HTML email to your Gmail account using external SMTP server
- module: Publish::Gmail
config:
mailto: Gmail_account_name+plagger@gmail.com
mailfrom: plagger@example.com
mailroute:
via: smtp_tls
host: smtp.gmail.com:587
username: Gmail_account_name
password: Gmail_pass
fetch_metaをコメントアウトしてしまったがこれはBloglinesのフォルダ分けをGmailで反映させたい場合に使うようだ。とりあえずまだGmailを全然使ってない状態なので慣れるまではoffっとく。またPublish::GmailのGmail_account_name+plagger@gmail.comの+と@の間に来る文字列でラベルを指定できる。(この場合はplaggerがラベルになる。)
#追記and訂正
メールのToの部分が[自分のアカウント名+plagger@gmail.com]となるだけなので、ラベルが指定できるというかラベルを指定orメールを振り分けるための目印となるって言った方が正しい。
んで早速実行。
perl plagger -c /HOME/plagger_conf/bloglines2gmail.yaml
Plagger [info] plugin Plagger::Plugin::Subscription::Bloglines loaded.
Plagger [info] plugin Plagger::Plugin::Widget::Delicious loaded.
Plagger [info] plugin Plagger::Plugin::Widget::BloglinesSubscription loaded.
Plagger [info] plugin Plagger::Plugin::Publish::Gmail loaded.
Plagger [info] Rewrote 2 password(s) and saved to /HOME/plagger_conf/bloglines2gmail.yaml
Plagger::Plugin::Subscription::Bloglines [info] You have 471 unread item(s) on Bloglines.
Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded.
Plagger::Plugin::Subscription::Bloglines [info] 17 feed(s) updated.
Plagger::Plugin::Publish::Gmail [info] Sending Bloglines | News to lyoxxx+plagger@gmail.com
Plagger::Plugin::Publish::Gmail [info] Sending 404 Blog Not Found to lyoxxx+plagger@gmail.com
Plagger::Plugin::Publish::Gmail [info] Sending ここギコ! to lyoxxx+plagger@gmail.com
Plagger::Plugin::Publish::Gmail [info] Sending ひげぽん OSとか作っちゃうかMona- to lyoxxx+plagger@gmail.com
Plagger::Plugin::Publish::Gmail [info] Sending 結城浩の日記 to lyoxxx+plagger@gmail.com
Plagger::Plugin::Publish::Gmail [info] Sending 川o・-・)<2nd life to lyoxxx+plagger@gmail.com
Plagger::Plugin::Publish::Gmail [info] Sending Engadget Japanese to lyoxxx+plagger@gmail.com
(略)
そうすると
だったのが
ちゃんとGmailにキタヽ( ・∀・)ノ
ちゃんとFilterとしてdel.icio.usへのpost用リンクも追加されてる。(設定ファイルのmodule: Widget::Delicious って部分がコレに相当)
あとはcronで周期的にさっきのコマンドを実行するようにすればいいだけ。まぁこれは明日あたりにでもやろう。