#june29jp

続Plaggerいじり

2006-09-26

del.icio.usのブックマークをはてなブックマーク及びLivedoor Clipへ

すごく便利だなぁと思ったのだけれど,ボクの環境ではソーシャルブックマーク管理ツールbookeyが動きません.でもいざというときのためにdel.icio.usのブックマークをはてなブックマークや他のソーシャルブックマークサービスにも残しておきたい.それPla,と思ってやってみました.

なぜブックマークのバックアップを考えたか,理由はいくつかあります.まず単純に,del.icio.usがメンテナンスなどで利用不能になっているときに,代わりに利用できるものがほしい.そして,それぞれのサービスにはそれぞれの良さがあって,上手に使い分けていけたらもっと便利に使えるだろうと考えました.del.icio.usは投稿がしやすくて好きです.一方ではてなブックマークは,再利用の仕組みがたくさんあって楽しいです.特に最近,はてなブックマークコメントその場で表示ライブラリがリリースされてますます楽しいです.ボクも自分の作ったWebサイトでこのライブラリを利用させてもらおうと思ったのですが,自分のコメントが表示されないってのは寂しいものです.それで,はてなブックマークにも同期させてしまえと思いました.ついでにサムネイル表示が嬉しいLivedoor Clipにも同期させます.

yamlはPlaggerグループ – Seacolor’s Labs. – del.icio.usとはてなブックマークを同期させるyaml(完全版)を参考にさせてもらいました.感謝です.

del.icio.us2hatebdoor.yaml
[code]
global:
timezone: Asia/Tokyo
log:
level: info

plugins:
– module: Subscription::Config
config:
feed:
– url: http://del.icio.us/rss/june29

– module: Filter::Rule
rule:
module: Deduped
path: /home/june29/plagger/cache_rule/delicious2hatebdoor.tmp
compare_body: 1

– module: Filter::Reverse
– module: Filter::DeliciousFeedTags

– module: Publish::HatenaBookmark
config:
username: (hatena_id)
password: (hatena_password)
interval: 8
post_body: 1

– module: Publish::LivedoorClip
config:
livedoor_id: (livedoor_id)
password: (livedoor_password)
interval: 5
post_body: 1
[/code]

Dedupedを指定して重複ポストを防ぎます.delicious2hatebdoor.tmpはそのためのファイルのようです.指定したファイルが存在しない状態でこのyamlを実行すると途中で止まります.事前に用意しておく必要があるのでしょうか.

[code]
touch /home/june29/plagger/cache_rule/delicious2hatebdoor.tmp
plagger -c del.icio.us2hatebdoor.yaml
[/code]

上記のようにコマンドを実行したところ,上手く動いてくれました.各intervalは適当です.急ぐものでもないので,他の使用者の皆さんのソースを参考にしつつ気持ち長めに設定.

自分と仲間たちのブックマークを全文にしてGmailへ

これはもう,「誰かがブックマークしていたなぁ」をいつでも全文検索できるようにしたい,それだけです.Bulknews::Subtech – atode.cc クローン by Plaggerをほとんどそのまま利用させてもらいました.感謝です.

sbm2gmail.yaml
[code]
global:
timezone: Asia/Tokyo

plugins:
– module: Subscription::Config
config:
feed:
– FEED_URL_1
– FEED_URL_2
– FEED_URL_3


– module: Filter::EntryFullText
config:
store_html_on_failure: 1

– module: Filter::ResolveRelativeLink

– module: Filter::Rule
rule:
module: Fresh
mtime:
path: /home/june29/plagger/cache_rule/sbm2gmail.tmp
autoupdate: 1

– module: Filter::BreakEntriesToFeeds

– module: Publish::Gmail
config:
mailto: you@example.com
mailfrom: you@example.com
mailroute:
via: smtp
host: localhost:25
[/code]

リンク先に説明があるのでここでは省きます.mtimeがよく分かっていないのですが,これも重複チェックのための機構だと思います.先ほどと同じように予めテンポラリを作っておくときちんと動きます.

[code]
touch /home/june29/plagger/cache_rule/sbm2gmail.tmp
plagger -c sbm2gmail.yaml
[/code]

指定するフィードの数が多くなると,全文取得や画像の相対パスを絶対パスに変換する処理などでけっこうな時間がかかるので,このyamlは3時間に1回だけ実行するようにcronを設定しました.

複数フィードを1つのフィードに統合

ウチの組織では,お互いがお互いに相手のブログ,ソーシャルブックマーク等のフィードをRSSリーダで購読しています.だからメンバーが1人増えるたびに登録の手間が発生するわけです.だったら全員分のフィードを1つにまとめて,みんなもそのフィードだけを購読するようにすれば良いということでPlaggerでやりました.

members2feed.yaml
[code]
global:
timezone: Asia/Tokyo
level: info
cache:
base: /home/june29/plagger/cache_rule

plugins:
– module: Subscription::Config
config:
feed:
– FEED_URL_1
– FEED_URL_2
– FEED_URL_3


– module: SmartFeed::All
config:
title: “FEED TITLE”

– module: Publish::Feed
rule:
expression: $args->{feed}->id eq ‘smartfeed:all’
config:
dir: /var/www/public_html/rss/
format: RSS
filename: feedtitle.rss

[/code]

指定したフィードをまとめてタイトルを付けて外から見える場所にファイルとして出力しているだけです.最初,sudoなしではmkdirしようとして止まってしまっていたのですが,globalのところでcacheのbaseを指定したらsudoなしでも実行できるようになりました.仕組みはまだよく分かっていないので,これから勉強しなければなりません.

今回のまとめ

ひとまず「やりたい!」ことはPlaggerを利用して1つずつ実現できています.世間的にはPlaggerでなんでもできる感じになっていますが,ボクはまだまだ「誰かがすでにやっていて,記録を残してくれているもの」しかできていません.もう少し触ってみて理解を深めて,もっと便利な使い方を見付けられたらなぁと感じています.ともあれ,こんなに便利なツールを提供してくれている皆さんにはとても感謝です!Plagger!

追記

続Plaggerいじり補足にて内容を補足しています.

おもしろかったら、シェアやブックマークや送金などぜひぜひお願いします。サイト運営の励みになります!

シェアや送金などお待ちしています!