まちBBSのofflaw.cgi仕様(2008/03/15) read.cgiのフォーマットが変わる都度、 専用ブラウザ制作者さんに対応してもらうのも申し訳ないので、 生っぽいログを供給するためのインタフェイスを作ってみました。 【ログ取得】==================================================================== ■パラメタ http://[SERVER]/bbs/offlaw.cgi/[BBS]/[KEY]/[OPTION] ■オプション オプションなし:スレッド全文取得(read.cgi共通) x:レス番xのレスを取得(read.cgi共通) x-y:xからyの範囲を取得(read.cgi共通) x-:x以降のレスを取得(read.cgi共通) -x:xまでのレスを取得(read.cgi共通) lx:最後から数えてx個のレスを取得(read.cgi共通) m:Last-Modifiedを取得(offlaw.cgiのみ) ■出力 コンテンツタイプは、 Content-type: text/plain;charset=Shift_JIS ヘッダにはスレの最終更新(及び削除)時刻を示すLast-Modifiedが含まれるので、 If-Modified-Sinceを指定することで更新が無い時に304を受け取ることが可能です。 304を返す場合スクリプトはログの読み込み及び解析を行わないため、 サーバの負荷および転送量は軽減されます。 ログフォーマットは、 レス番<>投稿者名<>メールアドレス<>日付 時刻 ID<>本文<>サブジェクト[改行] となっております。 read.cgiとの出力の違いとして、 lオプションで1が強制表示されない点にご留意ください。 mオプション使用時に吐かれる情報は、 1行目が1970年1月1日からの通算秒数。 2行目がフォーマットされた日付及び時刻となり、 共に対象スレの最終更新時刻(投稿・削除が行われた時刻)を示します。 更新時刻のみを取得したい場合などに使用してください。 【サブジェクトリスト取得】====================================================== ■パラメタ read.cgiのパラメータからキー及びオプションを外したものを使用します。 http://[SERVER]/bbs/offlaw.cgi/[BBS]/ ■出力 コンテンツタイプは、 Content-type: text/plain;charset=Shift_JIS ヘッダにはサブジェクトリストの最終更新(及び削除)時刻を示すLast-Modifiedが 含まれるので、If-Modified-Sinceを指定することで更新が無い時に304を 受け取ることが可能です。 304を返す場合スクリプトはサブジェクトリストの解析を行わないため、 サーバの負荷および転送量は軽減されます。 ログフォーマットは スレ順位<>キー番号<>サブジェクト(レス数)[改行] となっております。 【文字エンコード関連の補足】==================================================== subject.txtなどにおいては、「@`」といった特殊な表記が使われるなどしていますが、 offlaw.cgiでは全ての変換を済ませた上で出力を行っているため、 専用ブラウザ側で改めて変換を行う必要は(たぶん)ありません。 また、出力からはといったタグの除去も行っております(
を除く)。 【リモートホスト情報に関して】================================================== リモートホスト情報の開示・非開示は各板の管理者により設定されるものですが、 この設定は過去ログ全てに変化を生じさせてしまう要素でもあるため、 offlaw.cgiでは出力の普遍化を優先し、 リモートホスト情報の出力を見合わせています。