Bulknews::Subtech RSSフィード

2006/05/05 (金)

[Plagger] Subscription::XOXO 16:57  [Plagger] Subscription::XOXO - Bulknews::Subtech を含むブックマーク はてなブックマーク -  [Plagger] Subscription::XOXO - Bulknews::Subtech

http://d.hatena.ne.jp/antipop/20050628/1119966355 を更新した!というので microformats (XOXO) にしてもらって(といっても ul class="xoxo" を追加しただけ)、Subscription::XOXO で読み込んでみる。ちなみに XOXO はこれ。http://microformats.org/wiki/xoxo

OPMLとかのかわりに、XHTMLから li タグで並べられたa タグを抜き出す、みたいなイメージね。

f:id:miyagawa:20060505165823g:image

plugins:
  - module: Subscription::XOXO
    config:
      url: http://d.hatena.ne.jp/antipop/20050628/1119966355

#  - module: Aggregator::Xango
  - module: SmartFeed::All
    rule:
      module: Fresh
      duration: 10080 # Seven Days
    config:
      title: Planet Perl JP

  - module: Publish::Planet
    rule:
      expression: $args->{feed}->id eq 'smartfeed:all'
    config:
      dir: /home/miyagawa/public_html/perl
      skin: default
      template:
        members_list: 1

できあがりはこんなの。http://blog.bulknews.net/tmp/perl/

Publish::OPML も追加すると http://blog.bulknews.net/tmp/perl/subscription.xml こんな OPML が吐ける。

メモ。

  • Aggregator::Xango では拾えないフィードあり。タイムアウト関係か
  • Subscriptionを1個ずつブロックにするの、なんかやな感じになってきた。全部 ::Config に書いて discovery/expand させるのはどうか。再帰的になっちゃうか。。
  • Planet を SmartFeed::Allと一緒にするのはやはりなんかメンドイ。いままでのconfig動かなくなるけど、SmartFeedなしで動くようにする予定。

Sub::XOXO のコードはこんな感じ。

http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Subscription/XOXO.pm

CPAN に XML::XOXO あるけど使いにくいので自作。TreeBuilder でwalkdown しながら ul/li/a を見つけるというちとわかりにくい構造になってます。ネストとかもいけるはず。DOM/XPath だとネストとかめんどいし、SAX でも入れ子の処理が大変。

UPDATE: http://subtech.g.hatena.ne.jp/youpy/20060505/p1 みたら XPath のほうがキレイにかける。ステキ。というわけでこれに変更。r687

lestrratlestrrat2006/05/06 03:58お、問題あったら教えてね>A::Xango