仮設置なので色々不備があるかもしれません。~
→ ''[[ダウンロード>http://naname.jp/dl/xbel-antenna.tar.gz]]''

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

#contents

* 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無視|
|~広告付きサーバ対策|△&br;URLによるフィルタで設定可能&br;RSSの先頭の広告は除去|
|~日時情報を持たないRSS|○&br;HEADかファイルサイズ変動による取得|
|~RSSの自動取得|○&br;ただし付属ツールの手動実行が必要|

* Copyright

XBEL-Antenna~
Copyright (C) 2006 Riu

* License

Modified BSD License

* コメント

#comment

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS