#topicpath
*subject.txtの仕様
#contents

**概観

***リクエスト
 GET /board/subject.txt HTTP/1.1
 Host: server.domain.dom
 User-Agent: Monazilla/1.00
 Connection: close
 Accept-Encoding: gzip

***データ
 0000000000.dat<>スレッドタイトル (レス数)
 0000000000.dat<>スレッドタイトル (レス数)
 ...

**規則

文字コードはShiftJIS、改行コードは\nのみ。

subject.txtは、'''/板キー/subject.txt'''に置かれています。
ですが、普通にGETを送ったのでは(規制されていて)読めませんから、
User-Agentを'''Monazilla/1.00'''としなければいけません。
ブラウザの情報を書きたい場合には、
'''Monazilla/1.00 (ブラウザ名/バージョン)'''のように、()の中に書くといいです。

また、転送量が問題になった時から、2chブラウザは、
gzipで圧縮されたものを受け取れるようにするべきだ、という意見があります。
HTTPリクエストに'''Accept-Encoding: gzip'''を加えると、
受け取るファイルがgzipで圧縮されて送られてくるようになります。
解凍する手間はかかりますが、できるだけ対応させてください。
HTTP/1.0の仕様にはAccept-Encodingはありませんから、HTTP/1.1を使いましょう。

***スレッドキー
スレッドキーは、スレッドが立てられた時のtime関数の値(epochからの秒差)で、
大半が10桁になってはいますが、まだ9桁のスレッドもあります。

それから、924ではじまる10桁のスレッドキーがありますが、
そのスレッドは普通に立てられたものではありません。
書き込みできない、しばらくすると勝手に上がってくる、など、
ちょっと変わった特徴があります。

***スレッドタイトル
スレッドタイトルとレス数は一緒になっていますから、
別々に使おうと思ったら(多くはそうだと思う)、分割してやらなければいけません。
分割する際には、スレッドタイトルの後に空白が1つ入っていますから、
不要ならそれを削除してしまってもいいと思います。
具体的には、Cでは、以下のようなコードで分割できます。

 p = strrchr(title, ' ');
 *p = '\0';
 nres = atoi(p+2); /* +2は、空白と開きカッコをスキップ */

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS