Spec2ch

出典: やる気向上作戦

KnowledgeBase


2ch仕様整理

目次

主要なパス

主要なURIは、以下の4つである。

  • http://サーバ/板名/subject.txt
  • http://サーバ/板名/dat/xxx.dat
  • http://サーバ/test/read.cgi
  • http://サーバ/test/bbs.cgi


subject.txtの仕様

以下の形式の情報が任意の個数入る。

[datファイル名]<>[タイトル][sp]([レス数])[LF]

エンコーディングはShift_JIS


datファイルの仕様

datファイルは、以下の書式を持つ。

[datfile] := [datrecord]*
[datrecord] := [name]<>[mail]<>[timestamp and ID]<>[sp][post][sp]<>[title][LF]

[name]は、名前。「<」「>」「&」等の文字は、すべてエスケープ済みである。 トリップが含まれる場合、「[sp]</b>トリップ[sp]<b>」に置換される。

[mail]は、メールアドレス。空の場合もある。

[timestamp and ID]は、ローカル時刻。ID付きの板の場合、時刻の後ろに「[sp]ID:XXXXXXX」が追加される。

[post]は、書き込み本文。改行は
に、URI文字列はリンクに置換済みである。 それ以外の「<」「>」「&」等の文字はすべてエスケープ済みである。 >>1等のレス参照は、書き込み時点ではリンクに置換されない。read.cgiによって、表示時に置換される。

[title]は、スレのタイトル。改行は空白に置換?\0も置換される? [title]は、最初の行にのみ存在する。

あぼーんされたレスは、[name],[mail],[timestamp and ID],[post]が「あぼーん」に置換される。 [title]のみ空白になる?

エンコーディングはShift_JIS


read.cgiの仕様

以下の形式でアクセスされる。

/test/read.cgi/板名/キー/スレ範囲

キーは、datファイルの名前の、拡張子(.dat)を除いた部分に相当。

スレ範囲指定は以下の書式により記述する。 [l][num1][n][-[num2]]

  • num1のみが指定された場合、num1番のレスのみが返される。
  • num1- の形式の場合、レス1およびnum1番のレス~最後のレスまでが返される。
  • 先頭に「l」が存在する場合、レス1および最後からnum1個のレスが返される。
  • オプション「n」が存在する場合、レス1は返されない。

上記以外が指定された場合、すべてのレスが返される。


bbs.cgiの仕様

書き込みはPOSTリクエストにより行う。 MIMEタイプはapplication/x-www-form-urlencodedであろう。 エンコーディングはShift_JISである。なお、REFERERが適切に設定されていないとアクセス拒否されるようである。

パラメータは以下のとおり

  • スレッド作成の場合
    • subject (スレッドタイトル)
    • FROM (名前)
    • mail (メールアドレス)
    • MESSAGE (書き込み内容)
    • bbs (板名)
    • time (フォームを含むHTMLが生成された時刻? time_tの値。用途不明。)
  • レスの場合
    • FROM (名前)
    • mail (メールアドレス)
    • MESSAGE (書き込み内容)
    • bbs (板名)
    • key (キー)
    • time (時刻)

スレ作成とレスの違いは、

  • スレ作成にはsubjectがあるが、レスにはない。
  • レスにはkeyがあるが、スレ作成にはない。
個人用ツール