monazilla

概観

リクエスト

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