XBEL-Antenna

Top / XBEL-Antenna

仮設置なので色々不備があるかもしれません。
ダウンロード

2007-09-24
動かないファイルをアップロードしていたのを修正。
2006-10-15
pyxml.sourceforge.net が落ちているとXBELのパースに失敗するので(DTDの読込に失敗するため)、
DTDの指定を消しておくと問題を回避できます(!DOCTYPE xbelごと消して問題なし。

what is XBEL-Antenna

  • Webベースアンテナ + RSSアグリゲータ
    • RSS以外のサイトからも取得可能
  • 未読管理
  • ブックマーク(XBEL)上のサイトの更新情報を取得
  • RSS Auto Discovery
    • RSSではない普通のブックマークから自動でRSSのアドレスを取得

ブックマーク記述言語 XBEL (XML Bookmark Exchange Language)でURLを管理するアンテナ風RSSアグリゲータです。 Webベースのアンテナ(NATSU-MICANなど)にRSSから更新情報を取得する機能と未読管理機能を追加したようなものになってます。 ブックマークを元にチェックするサイトを指定するので、更新情報を取得するURLをわざわざRSSアグリゲータに登録したり、 URLが変わったときにブックマークとRSSアグリゲータの両方を変更する必要がありません。

まだβ版です。 ドキュメントも書きかけです。

どこがうれしい?

  • 1つのXBELファイルで一元管理
    • 二度手間にならない
      • RSSアグリゲータとブラウザのブックマークの両方に登録
      • 家のRSSアグリゲータと学校/職場のRSSアグリゲータの両方に登録
      • などの手間が1つに
    • ブラウザでアンテナのURL管理
  • 家や学校や職場で一元化された未読管理ができる
    • 家で読んだものは学校/職場で見ても既読
    • WebベースRSSアグリゲータの強み

どういう人がターゲット?

Firefox + Bookmarks SynchronizerなどでWebサーバ上にブックマークをXBELで置いている人。 家や学校や職場で同期しているブックマーク上のサイトの更新情報を取得できるので、 普段チェックしているサイトの管理がブックマークに一元管理されて幸せ!

XBELって?

XML Bookmark Exchange Language の略。 XMLによるブックマーク交換のための言語。 ブラウザA → XBEL → ブラウザB という風にブックマークを交換するための言語。

以下のブラウザで使われています

  • Firefox + Bookmarks Synchronizer
  • galeon
  • Konqueror
  • 風博士

参考 http://www2.airnet.ne.jp/sardine/langs/XBEL.html

インストールと使い方

インストール

  • 動作環境のところで書いているモジュールを拾ってくる
  • config/config.ph を作成
    • サンプルは config/config.ph.sample
    • 詳細はサンプルのコメントを参照のこと
  • (tool/detector.pl を実行して $CONFIG::CACHE_PATH で指定したファイルが作られているか確認)
  • (login.cgi でログインできる確認)
    • ログイン成功すれば view.cgi に移動する
    • view.cgi はログインしていないと login.cgi に移動させられる
  • (view.cgi でアンテナを表示してそのリンクがたどれるか確認)
  • tool/detect.pl を crontab などに設定

以下静的HTMLを生成したい場合

  • (tool/generate-html.pl を実行して $CONFIG::HTML_PATH で指定したファイルが作られているか確認)
  • tool/generate-html.pl を crontab などに設定
    • tool/detect.pl が完了してから動くように

RSS Auto Discovery(RSSのURLを自動で取得する)

  • 以下のコマンドでXBELが更新される
    • tool/rss-auto-discovery.pl INPUT_XBEL [OUTPUT_XBEL]
  • OUTPUT_XBEL を指定しなかった場合は INPUT_XBEL を上書き更新
  • XBEL-Antennaと連動はしない
    • If-Modified-Sinceなどを利用していないので cron などによる利用はすべきでない

用意するXBEL

特に加工する必要はありませんが XBEL-Antenna はブックマークの説明(desc)を利用します。 以下のような行が存在した場合、それを更新情報取得に利用します。 関係ない行は無視するので、既にある説明はそのまま利用できます。

  • author:サイトの作者
  • rss:RSSのURL(RSS Auto Discoveryはこの部分を更新/追加します)
  • check:更新情報取得用のURL
    • rssが指定されている場合はrssが優先
    • 日時の置換子が利用可能(suffixと同様)
  • suffix:静的HTMLのリンクの後ろにつける日時情報のフォーマット(config/config.ph.sample参照)

サンプル

author:Riu
rss:http://naname.jp/index.php?cmd=rss
suffix:#%%year:4%%-%%month:2%%-%%day:2%%-%%hour:2%%:%%min:2%%

画面の見方

  • サイト一覧
    • 左から順に 更新日時 タイトル (作者) 更新日時を取得した時刻 ステータス です
    • ステータスはそれぞれ左から (Error) 取得方法 HTTPステータス を表しています
    • 取得方法が RSS になっているサイトはさらに取得した新しい記事の情報が付加されます
  • 未読管理付き画面
    • ログインが必要です
    • 未読のサイト、記事が強調表示になります(標準のデザインだと背景が薄い紫に)
  • login
    • ログイン画面に移動します
  • logout
    • ログアウトし、ログイン画面に移動します

ステータスについて

  • HTTPステータスの詳細は勉強してください、ということで簡単にだけ
    • 304(Not Modified)
      • 前回更新されたときから新たに更新されていない
      • 前回取得した情報を使い回す
        --- 従って detected 〜 の更新日時取得時刻は更新されない
    • 200(OK)
      • 問題なく取得できた
      • だからといって取得できたRSSが腐ってた場合は XA 上ではエラー

うまく日付を取得するには

  • RSSで、HTTPステータスが正常(200など)なのに Error になっている
    • RSSの解析に失敗しています
  • RSSで、記事は取得できているのに更新日時が取得できていない
    • RSSに日付の情報がない、あるいは対応していないフォーマットの日付で記述されている
    • 複数のRSSのバージョンを配布している場合は、バージョンによって日時が含まれていない場合があります

注意書

  • フィルタの正規表現次第でやたら遅くなります
    • 何が遅いかは自分で調べて :P

動作環境

Perl 5.8.x(Unicode周りの処理を使っています)

以下のモジュール(とそれに付属するもの)を必要とします。 http://www.cpan.org/ から拾ってください。

  • LWP::UserAgent
  • HTTP::Request
  • XML::XBEL
  • XML::RSS

今のところ Debian(sid) でしか動作確認していません。 XBELは Firefox + Bookmarks Synchronizer のもの。

詳細仕様

言語Perl
設定ファイルPerl
登録サイト設定XBEL
出力HTML(静的、未読管理付きCGI)、RSS
HEADによる取得
GET+日時抽出による取得×
RSS○アイテムの更新日時も取得
ローカルファイルによる取得
ファイルサイズ変動による取得
If-Modified-Since
DateとLast-Modfiedの一致Last-Modfied無視
広告付きサーバ対策
URLによるフィルタで設定可能
RSSの先頭の広告は除去
日時情報を持たないRSS
HEADかファイルサイズ変動による取得
RSSの自動取得
ただし付属ツールの手動実行が必要

Copyright

XBEL-Antenna
Copyright (C) 2006 Riu

License

Modified BSD License

コメント


名前: ひとこと: "ham"と入力してください:

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-24 (月) 01:31:32 (4256d)