カラクリスタ

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

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


前に、

  • Plagger 使ってブラウザからオートディスカバリ /post/50888719481
  • Plagger で Firefox から抽出した OPML を LDR にインポートした /post/50891534339

でやったオートディスカバリを 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

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

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

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

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

で、まあ、今回は一発でできたんだけど、エクスポートされる形式が RSS や Atom なんかの 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