monazilla

概観

リクエスト

GET /board/0000000000.dat
Host: server.domain.dom
User-Agent: monazilla/1.00
Connection: close
Accept-Encoding: gzip

データ

名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル
名前<>E-mail<>日付とIDとBE<>本文<>
名前<>E-mail<>日付とIDとBE<>本文<>
...

# E-mailはURLエンコード、他の値はすべてHTMLエンコード。
# スレッドタイトルは、&gt;&gt;1にしか書かれません。

用語の定義

以下のために用語の定義をしておくと、
<を&lt;とする方法をHTMLエンコード、
<を%3Cとする方法をURLエンコードとします。

文字a<>&"
HTMLエンコードa&lt;&gt;&"
URLエンコードa%3C%3E%26%22%E3%81%82

HTMLエンコードは、<と>しか見ていないようです。
そのことを利用したAAなどもありますから、できることなら
特殊文字(&hearts;など)や実態参照(&#ddや&#xff;など)も
理解できるようにしておきましょう。

規則

文字コードはShift_JIS、改行コードは\n。

/board/0000000000.datにファイルが置かれています。
この0は、実際は任意の数字で、subject.txtを読むことで調べられます。
リクエストの他の行もsubject.txtの仕様で説明しているので、
そちらを読んでください。

名前

HTMLエンコードされています。

◆という文字があれば、それ以降の10文字はトリップです。
普通に文字として◆を書くと、◇にされてしまいます。
ほかに、★と●は、特殊な条件の人しか使えません。

E-mail

URLエンコードされています。

日付とID

HTMLエンコードされています。

IDが付く板の場合、日付のあとにID:xxxxxxxxのようにIDが付いてきます。
なぜかまとめて格納されていますが、
おそらく、IDは後から追加されたデータなので、
過去のブラウザを修正しなくてもいいように、配慮したのではないかなと。

また、2004/12あたりから、BE@2ch掲示板のプロファイルが追加されました。
IDの後に空白で連結されて、BE:xxxxxxのようになります。

このまま使っても問題は起きないと思いますが、分割するには、
" ID:"(先頭に空白が1つあります)という文字列を探して、
見つかったなら、それより前は日付、後はIDとすればいいです。
見つからなければ、IDはありません。BEも同様です。

日付について少し加えると、いろいろな書き方があるようです。
古いものから順にあげていくと、、

YYYY/MM/DD(W) hh:mm
YY/MM/DD hh:mm
YY/MM/DD hh:mm:ss

Y: 年
M: 月
D: 日
W: 曜日 (漢字で1文字)
h: 時間 (24時間)
m: 分
s: 秒

本文

HTMLエンコードされています。

改行は<br>になっているので、
適切な改行コードになおすなどしてください。

そうすると、複数の行になると思われますが、
その各行の前後に、空白が1つ付いているのが分かるかと。
何のためにこのような仕様になっているのかは分かりませんが、
ともかく、普通は、以下のようになっています。

" 1行目 "
" 2行目 "
" 3行目 "
...

↑で普通は、と書きました。
それは、おそらくバグだろうと思いますが、
変なログが、まれに、まぎれ込んでいるからです。
具体的には/unix/1000022300/143で、以下のような形をしています。

" 1行目"
"2行目"
...
"最後の行 "

見れば分かりますが、最初と最後にしか、空白がついていません。

未稿

http://pc5.2ch.net/test/read.cgi/tech/1057329161/188

188 : ◆ap/yuix/tw :05/01/16 18:22:47
dat取得の仕様 

hoge.2ch.net鯖のhogehoge板のキーが1234567890のスレッド(http://hoge.2ch.net/test/read.cgi/1234567890/)を取得する場合 

(1)http://hoge.2ch.net/hogehoge/dat/1234567890.datを取得 
(2)http://hoge.2ch.net/hogehoge/kako/1234/12345/1234567890.dat.gzを取得 
(3)http://hoge.2ch.net/hogehoge/kako/1234/12345/1234567890.datを取得 
(4)●がある場合 offlaw.cgiを使用 

(1)から(4)まで、302 Foundになるたびに次に進む

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS