bbs.cgi 改良案スレッド

このエントリーをはてなブックマークに追加
23:~名前()
せっかくだから、このスレにも貼ります。あと、ちょと変更。

次世代?2ch .datとread.cgi、その他関連ファイルの仕様案 その2

【その1からの変更点】
・マークの取り扱い、セパレータを変更するのではなく、日付フィールドに
 それを納めるようにする。
・その他、色々(主に独り言)と追加。

【要点】
・bbs.cgiがインデックスファイルを作成すること
・削除処理は、レス内容塗りつぶしで行い、datのサイズを変えないこと
 (削除処理でインデックスファイルを更新しない様にするため)
・削除処理の履歴をdatファイルに記録すること
・datそのものの差分を取得するcgiを作成すること
・現行のdatファイルの仕様から*なるべく*逸脱しない。「かちゅーしゃ」
 等の専用UAとの親和性も考慮すること。

◎インデックスファイル
インデックスファイルは、bbs.cgiが各レス書き込み時に、書き込み後の
datファイルのサイズを記録し、レス番号と関連付ける。
たとえばレス番号nのレスを読み出したい場合は、datファイルより、
idx[n-1] 〜 idx[n] - 1 の範囲を読み出す。
ファイルフォーマットは未定。32bitバイナリのベタファイルで十分だと思う。

◎マーク文字列
datファイルの日付フィールドをレスの種別を示すためのマークとして
使用する。日付フィールドは最低14バイト確保されるものとし、その中に
特定の文字列を書き込む事により、種別を設定する。
例:
「01/06/23 21:26」  通常レス
「DEL+9999999999」  削除レス("DEL+" + time_t)
「DEL*9999999999」  削除履歴("DEL*" + time_t)
「STOP」       スレッドストップされたスレッド

◎削除処理
削除スクリプトは、該当レスの内容を'#'で 塗りつぶすことで、削除処理
を行う。datファイルのサイズを変更しない。
(インデックスファイルの整合性を保つため)
また、datファイル内の日付フィールドを「削除レス用マーク文字列」で置
き換える。ただし、フィールドの長さを変更しないように、マーク文字列
の後はセパレータまで'#'で埋めること。
また、datに通常のレスの形式で、削除履歴を記録する。名前フィールドは
削除されたレス番号とし、日付フィールドは「削除履歴用マーク文字列」
とする。

例:3件書き込まれた後、2が削除、さらに1件書き込み。
----------------------------------------------------------------------
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>
##########<-#####<>DEL+998845501#<>########### <>
名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。 <>
2<><>DEL+998845501#<>
名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる <>
-----------------------------------------------------------------------