カラクリスタ

「輝かしい青春」なんて失かった人のブログ

Plagger使ってソーシャルブックマークからオートディスカバリ

概要: del.icio.usはてなブックマークから Feed の一覧を取得する。


前に、

でやったオートディスカバリを del.icio.usはてなブックマークからやってみた。

設定はこんな感じ。

SBM2OPML.yaml ( global は省略 )

plugins:
# del.icio.us
- module: Subscription::Bookmarks
config:
browser: Mozilla
path: /path/to/delicious.html
# Hatena Bookmark
- module: Subscription::Bookmarks
config:
browser: Mozilla
path: /path/to/hatena-bookmark.html
- module: Filter::Rule
rule:
module: Deduped
path: /tmp/var.db
- module: Publish::OPML
config:
filename: /path/to/SBM.opml

使っている SBMdel.icio.usはてなブックマークなので、それらから Mozilla 形式でエクスポート、 それを購読して OPML を出力する、という感じ。

たまに Plagger がエラー吐いて停止するサイトとかあるので、そういうのに遭遇した場合、 Aggregator 系のプラグインに rule を指定して、そういうサイトを除外するようにすると問題なくなる。

ただ、Plagger が読み込んだ URL-A から見つかった Feed(URL-B)に問題があった場合、 URL-B を除外するようにしても何故か除外できなかったので、発見元の URL-A を除外する必要がある。 なので、問題があった Feed の前の URL も注意したほうが言いかもしれない。

今回抽出できた Feed は全部で 360 件で購読していたのが 217 件、最終的に購読したのが 12 件だった。 まあ今回はそれなりに収穫があったと思う。 ちなみに全部購読したら LivedoorReader の未読がすごいことになりました。

で、まあ、今回は一発でできたんだけど、エクスポートされる形式が RSSAtom なんかの Feed だと 一発でできなかったりする。

そういう場合、まず最初に Feed からブックマークしたエントリの URL を抽出して、 次に抽出した URL の一覧から Feed を探し出すと言う風になる。

つまりこういう感じ。

SBM2EntryList.yaml ( global は省略 )

plugins:
- module: Subscription::Config
config:
feed:
- url: file:///path/to/export.rss
- module: Publish::File
config:
filename: /path/to/entry_list.txt

EntryList2OPML.yaml ( global は省略 )

plugins:
- module: Subscription::File
config:
file: file:///path/to/entry_list.txt
- module: Filter::Rule
rule:
module: Deduped
path: /tmp/var.db
- module: Publish::OPML
config:
filename: /path/to/SBM.opml

Publish::File については Plagger::Plugin::Publish::File /post/50888722332 を参照。

ちなみに Feed のエントリのリンクがブックマークしサイトの URL なら問題ないんだけど、 はてなブックマークRSS/Atom Feed みたいにそうなってない(Plagger で扱うとはてなブックマーク内のリンクになってる) 物だとうまくいかない、けど多分大体の SBM でうまくいくんじゃないかと思う。

思ってるだけで実際にはやってない(そもそもそういうタイプの SBM は使ってない)ため、 ちゃんと動くかどうかは知らない。当然エクスポートできないサイトだと無理。あくまで参考程度に。

今回は 前にやったブラウザからのオートディスカバリ /post/50888719481 よりもうまくいった。 多分量が少なかったとかあるだろうけど。

とりあえず膨大な未読をなんとかしよう。

FIXME