Network から自分の登録した以外のエントリーを抽出するレシピ
Rule::Deduped::DBIC(*) にデータベースを指定できるようにパッチをあてました。Rule::Deduped::Base 周りも含めて重複チェック部分をこれから修正するかもしれないのでパッチはまだ未公開。Deduped 使わない方がよい気もしてきた。同じ DB を使ってネットワークの中で自分も登録しているエントリーについたコメントを抽出する方も実現できるかな。
branches/feature-server/ の方の plagger 利用 (plaggerd じゃないよ)。Plugin::Store::DBIC をコピーしてくれば trunk でも動く、と思う。
Filter::Deduped の挙動とはちょっと違うし、Filter::DBIC やら Rule::DBIC を作ったほうが素直っぽいのでその方向で書き直し。Subscribe::DBI がすでにあるみたいだし...って、これはデータベースに登録されたフィードのオリジナルの URL からエントリを取得するためのものか。名前からその動作は思いつかなかった。じゃあ、Subscription::DBIC も作るか。
- 自分のエントリーを DB 登録するレシピ
global: timezone: Asia/Tokyo plugins: - module: Subscription::Config config: feed: - url: http://del.icio.us/rss/naltan - module: Aggregator::Simple - module: Store::DBIC config: schema_class: Plagger::Schema::SQLite connect_info: [ 'DBI:SQLite:/home/nirvash/data/delicious_stored.db', ]
実際は、この後ではてブに同期させたりとかもしてるけど。
- 自分のエントリーDB で Network をフィルタリングするレシピ
global: timezone: Asia/Tokyo plugins: - module: Subscription::Config config: feed: - url: http://del.icio.us/rss/network/naltan - module: Aggregator::Simple - module: Filter::Rule rule: module: Deduped engine: DBIC config: schema_class: Plagger::Schema::SQLite connect_info: [ 'DBI:SQLite:/home/nirvash/data/delicious_stored.db', ] - module: Publish::Feed config: format: RSS dir: /home/nirvash/www/rss filename: delicious_network.rss
これを DB に突っ込んで PlaggerLDR で参照することもできるのだけど、今回は素直に LDR に RSS を登録してます。Network 自身の重複チェックはあえてやりません。
- ネットワーク内の自分が登録しているエントリについたコメント抽出
global: timezone: Asia/Tokyo plugins: - module: Subscription::Config config: feed: - url: http://del.icio.us/rss/network/naltan - module: Aggregator::Simple - module: Filter::Rule rule: module: Expression expression: $args->{entry}->body_text - module: Filter::Rule config: keep_0_entry_feed: yes rule: module: Deduped engine: DBIC extract_duped: yes config: schema_class: Plagger::Schema::SQLite connect_info: [ 'DBI:SQLite:/home/nirvash/data/delicious_stored.db', ] - module: Publish::Feed config: format: RSS dir: /home/nirvash/www/rss filename: delicious_comment.rss
Rule::Deduped と Filter::Rule にパッチあててます。RSS を直接出力せずに一度 DB に入れて、そこから一定件数のエントリーを RSS 化したほうがいいなぁ。