$Id: readme_ja.txt,v 1.1.1.1 2006/01/03 05:05:59 ohwada Exp $

=================================================
Version: 0.11
Date:   2006-01-21
Author: Kenichi OHWADA
URL:    http://linux2.ohwada.net/
Email:  webmaster@ohwada.net
=================================================

* 主な変更内容 *
(1) ブロック名にモジュールの識別番号を追加した
(2) レコードの一覧にID逆順を追加した
(3) レコードの更新方法を変更した
(4) menu.php のリンク切れを修正した

=================================================
Version: 0.10
Date:   2006-01-01
Author: Kenichi OHWADA
URL:    http://linux.ohwada.jp/
Email:  webmaster@ohwada.jp
=================================================

● モジュール概要
このモジュールは、 登録されたサイトを巡回し、RDF/RSS/ATOM 記事を収集し、データベースに格納する。
格納されたデータは検索が可能であり、検索結果をRDF/RSS/ATOM形式で出力することも可能である。

このモジュールは、 WebLinks の RDF/RSS/ATOM 記事収集機能を独立し、機能拡張したものである。
RDF/RSS/ATOM 収集のプラットホームとなる方向を目指している。
応用例としては、ヘッドライン・モジュール や 未来検索 http://sf.livedoor.com/ を想定している。

現在、ベータ版です。
今後、大幅に仕様や実装が変わる可能性があります。
何か問題が出ても、自分でなんとか出来る人のみお使いください。
仕様や応用例の提案、またはバグ報告やバグ解決やハックなどは歓迎します。


● 機能概要
１．サイト登録
サイト名、サイトURL、RDF/RSS/ATOM のURL、キャッシュ時間などを入力する。

２．「RDF/RSS/ATOM Auto Discovery」
サイトが「RDF/RSS/ATOM Auto Discovery」に対応してるときは、
サイトのURLを登録すると、RDF/RSS/ATOM のURL を自動検出し登録される。

３．ブラックリスト登録
未来検索などのブログ検索サイトを登録すると、好ましくない記事が収集されることがある。
好ましくない記事のURLをブラックリストに登録すると、以降の収集は停止される。
なお「好ましくない記事」は人により異なる。

４．RDF/RSS/ATOM記事の取得
どういう契機でRSS/ATOM記事を取得するか。
３つの方法を用意しています。

４．１ 誰かが WEBブラウザでアクセスしたときに、取得する
誰かが簡易ヘッドラインのページやブロックにアクセスしたときに実行されます。
巡回するサイトは簡易ヘッドラインに表示しているサイトだけです。
表示するサイトが多いと、タイムアウトする可能性があります。

４．２ 管理者が手動で取得する
管理者画面にアーカイブ更新があります。

４．３ コマンドラインモードで、自動的に取得する。
「コマンドラインの設定」を参照ください。

５．RDF/RSS/ATOM記事のXML解析
５．１ 文字コード
任意の文字コードに対応している。
ただし、XMLデータに文字コードの指定がないか、
PHPのマルチバイト関数が対応していない文字コードでは、文字化けすることがある。
また、日本語版では、ドイツ語やフランス語のウムラウトなどは文字化けすることがある。
なお、PHPのXMLパーサー関数は US-ASCII あるいは UTF-8 しか使用できないため、
EUC-JPなどはUTF-8に変換してから、解析している。

５．２ パーサーの選択
XMLデータの形式に応じて、RDF/RSS/ATOMのパーサーを自動的に選択する。
さらに、パーサーは複数 用意され、好きなものが選択できる。
XOOPSコアのRSSパーサーと、RSSCモジュール独自のパーサーが用意されている。
後者の方がパースできる項目が多い。

６．RDF/RSS/ATOM記事の表示
(1) HTMLタグの有効・無効
タイトルや本文にHTMLタグの使用をするか/しないかが選択できる。
使用する場合でも、JavaScript が含まれていると、サニタイズされ無効になる。

７．不備なRDF/RSS/ATOM記事の処理
(1) タイトルなし
タイトルがないものは、「---」を表示する。

(2) 日付なし
日付がないものは、常に最下位に表示される。
DBに格納するときに、現在の時刻を設定する。

(3) 未来の日付
未来の日付になっていると、常に上位に表示される。
表示するときに、３日以上未来のものを省いている。

８．サーバー環境
(1) PHP環境変数 allow_url_fopen off に対応した。

９．データの移行
９．１ XoopsHeadline モジュール
XoopsHeadline モジュール からヘッドライン・テーブルの過去のデータを移行できる。

９．１ WebLinks モジュール
WebLinks モジュールから、リンク・テーブル、フィード・テーブル、ブラックリストなどの過去のデータを移行できる。
現時点では、WebLinksとの連携機能がないので、
WebLinks側でも継続してRDF/RSS/ATOM記事を収集する必要がある。

１０．モジュール複製
コピーするだけでモジュールが複製できます。
TinyD モジュールなどで実装されているものと同じ機能です。
用意されているモジュール名は "rssc" と "rssc0" の２つです。
それ以外の場合は、sql と templates と images ディレクトリに必要なファイルを作成してください。


● インストール
(1) 解凍すると、「rssc」というディレクトリが出来る。
(2) XOOPS管理画面にて、モジュールのインストールをする。
(3) RSSCアイコンをクリックし、RSSCモジュールの管理者画面にする。
(4) 一番最初はいくつか警告が出る。
  (i) 設定テーブルが初期化されていない
     「保存」をクリックして、初期化する。
  (ii) cacheデイレクトリの書込み許可がない
      rssc/cache デイレクトリに書込み許可を与える
(5)「リンク一覧」にて「xoops.org」が登録されていることを確認する。
(6)「アーカイブ管理」にて「アーカイブの更新」を実行する
(7)「モジュールへ」をクリックし、RSSCモジュールのトップページを表示する。
(8) 最新のfeed記事が表示されれば、OK。
(9) 必要に応じて、 XoopsHeadline モジュールやWebLinks モジュールからデータを移行する。

● コマンドラインの設定
コマンドラインは、cron から定期的に実行することを想定しています。
不要であれば、bin ディレクトリを削除してください。

(1) 管理者画面にする
(2)「コマンド管理」にて「設定ファイルの生成」を実行する。
(3)「bin/refresh.php のテスト実行」を実行する。

(4) crontab に下記のような設定を加える。
-----
22 3 * * * /usr/bin/php4 -q -f /home/***/html/modules/rssc/bin/refresh.php password
-----
password は、「モジュール設定」画面の「コマンド設定」「パスワード 」に表示されている。


● TODO
(1) パーサーに magpieRSS と PEAR RSS を追加する。
(2) ブラックリストを共有する仕組みを作る
(3) 他のモジュールと連携するサンプルを作る
(4) 検索結果のブロックを追加する
(5) ヘッドラインにHTMLありを表示する
(6) 管理画面にヘッドラインの一覧が追加する

