「Monazilla/develop/dat」の版間の差分
(ページの作成:「=datの仕様= ==取得== /board/dat/0000000000.dat にファイルが置かれています。<br> この0は、実際はスレッド作成日時のUNIXタイムで、m...」) |
細編集の要約なし |
||
(3人の利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
=datの仕様= | [[Category:専用ブラウザ]] | ||
==取得== | [[Category:ソフトウェア]] | ||
== 最新情報 == | |||
[[Monazilla/develop#最新情報]] | |||
をご覧ください。 | |||
==datの仕様== | |||
===取得=== | |||
/board/dat/0000000000.dat にファイルが置かれています。<br> | /board/dat/0000000000.dat にファイルが置かれています。<br> | ||
この0は、実際はスレッド作成日時のUNIXタイムで、[[monazilla/develop/subject.txt|subject.txt]]を読むことで調べられます。 | この0は、実際はスレッド作成日時のUNIXタイムで、[[monazilla/develop/subject.txt|subject.txt]]を読むことで調べられます。 | ||
12行目: | 20行目: | ||
]]></text></nowiki> | ]]></text></nowiki> | ||
==形式== | ===形式=== | ||
<nowiki>名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル | <nowiki>名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル | ||
名前<>E-mail<>日付とIDとBE<>本文<> | 名前<>E-mail<>日付とIDとBE<>本文<> | ||
24行目: | 32行目: | ||
ただし、削除跡(レス削除、スレ停止、スレ移動)等では、スレッドタイトル部分にも削除表示があります。 | ただし、削除跡(レス削除、スレ停止、スレ移動)等では、スレッドタイトル部分にも削除表示があります。 | ||
==用語の定義== | 比較的最近にスレ立てされたものは、1に書かれるスレッドタイトルの直後にタブコード\tが増えています。<br> | ||
また、板によってはスレを立てた者のBE-IDが追加情報として付与されています。 | |||
名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル | |||
名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル [BE-ID] | |||
===用語の定義=== | |||
以下のために用語の定義をしておくと、 | 以下のために用語の定義をしておくと、 | ||
<を&lt;とする方法をHTMLエンコードとします。 | <を&lt;とする方法をHTMLエンコードとします。 | ||
39行目: | 52行目: | ||
|a | |a | ||
|&lt; | |&lt; | ||
|&amp; | |||
|&gt; | |&gt; | ||
|&quot; | |&quot; | ||
|あ | |あ | ||
50行目: | 63行目: | ||
理解できるようにしておきましょう。 | 理解できるようにしておきましょう。 | ||
==規則== | ===規則=== | ||
文字コードは通常ではShift_JIS。<br> | 文字コードは通常ではShift_JIS。<br> | ||
改行コードは\n。<br> | 改行コードは\n。<br> | ||
投稿者が記入したものはHTMLエンコードされています。 | 投稿者が記入したものはHTMLエンコードされています。 | ||
===名前=== | ====名前==== | ||
read.cgiでは、名前を太字で表示するためにBタグを付加しますが、<br> | read.cgiでは、名前を太字で表示するためにBタグを付加しますが、<br> | ||
datでは単純な名前のみの記録です。 | datでは単純な名前のみの記録です。 | ||
70行目: | 83行目: | ||
同様に、★と●も特殊な条件の人しか使えず、☆と○にされます。 | 同様に、★と●も特殊な条件の人しか使えず、☆と○にされます。 | ||
===E-mail=== | ====E-mail==== | ||
AタグのHREF属性の値として使われる事が多いかと思いますが、スペースや<br> | AタグのHREF属性の値として使われる事が多いかと思いますが、スペースや<br> | ||
シングルクォートはHTMLエンコードされずに、そのまま書き込めることに注意しましょう。 | シングルクォートはHTMLエンコードされずに、そのまま書き込めることに注意しましょう。 | ||
===日付とID等=== | ====日付とID等==== | ||
IDが付く板の場合、日付のあとにID:xxxxxxxxのようにIDが付いてきます。<br> | IDが付く板の場合、日付のあとにID:xxxxxxxxのようにIDが付いてきます。<br> | ||
なぜかまとめて格納されていますが、<br> | なぜかまとめて格納されていますが、<br> | ||
107行目: | 120行目: | ||
データの解釈に柔軟性を持たせるのが良いかもしれません。 | データの解釈に柔軟性を持たせるのが良いかもしれません。 | ||
===本文=== | ====本文==== | ||
改行は<br>になっているので、<br> | 改行は<br>になっているので、<br> | ||
適切な改行コードになおすなどしてください。 | 適切な改行コードになおすなどしてください。 | ||
113行目: | 126行目: | ||
そうすると、複数の行になると思われますが、<br> | そうすると、複数の行になると思われますが、<br> | ||
その各行の前後に、空白が1つ付いているのが分かるかと。<br> | その各行の前後に、空白が1つ付いているのが分かるかと。<br> | ||
<!-- | |||
何のためにこのような仕様になっているのかは分かりませんが、<br> | 何のためにこのような仕様になっているのかは分かりませんが、<br> | ||
ともかく、''普通は''、以下のようになっています。 | ともかく、''普通は''、以下のようになっています。 | ||
--> | |||
これは文字コードの関係で、>や<が各行の内容に飲み込まれて解釈されるのを防止するためで、<br> | |||
''普通は''、以下のようになっています。 | |||
" 1行目 " | " 1行目 " | ||
" 2行目 " | " 2行目 " | ||
131行目: | 148行目: | ||
見れば分かりますが、最初と最後にしか、空白がついていません。 | 見れば分かりますが、最初と最後にしか、空白がついていません。 | ||
==未稿== | ===未稿=== | ||
http://pc5.2ch.net/test/read.cgi/tech/1057329161/188 | http://pc5.2ch.net/test/read.cgi/tech/1057329161/188 | ||
188 : ◆ap/yuix/tw :05/01/16 18:22:47 | <nowiki>188 : ◆ap/yuix/tw :05/01/16 18:22:47 | ||
dat取得の仕様 | dat取得の仕様 | ||
143行目: | 160行目: | ||
(4)●がある場合 offlaw.cgiを使用 | (4)●がある場合 offlaw.cgiを使用 | ||
(1)から(4)まで、302 Foundになるたびに次に進む | (1)から(4)まで、302 Foundになるたびに次に進む</nowiki> | ||
2015年2月17日 (火) 04:40時点における最新版
最新情報
Monazilla/develop#最新情報 をご覧ください。
datの仕様
取得
/board/dat/0000000000.dat にファイルが置かれています。
この0は、実際はスレッド作成日時のUNIXタイムで、subject.txtを読むことで調べられます。
基本的なアクセス方法はmonazilla/develop/accessを参照してください。
User-Agentには特に注意が必要です。
MSIE 6が含まれていると、以下のようなXMLっぽい情報が付加されていることがあります。
<?xml version="1.0" encoding="Shift_JIS"?> <text><![CDATA[ 元々のdat内容 ]]></text>
形式
名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル 名前<>E-mail<>日付とIDとBE<>本文<> 名 </b>fusianasan.2ch.net<b>前<>E-mail<>日付とIDとBE<>本文<> 名前 </b>◆ozOtJW9BFA <b><>E-mail<>日付とIDとBE<>本文<> キャップ ★<>E-mail<>日付とIDとBE<>本文<> 名前 </b>◆ozOtJW9BFA <b>@キャップ ★<>E-mail<>日付とIDとBE<>本文<> あぼーん<>あぼーん<>あぼーん<>あぼーん<>あぼーん ...
スレッドタイトルは、1にしか書かれません。
ただし、削除跡(レス削除、スレ停止、スレ移動)等では、スレッドタイトル部分にも削除表示があります。
比較的最近にスレ立てされたものは、1に書かれるスレッドタイトルの直後にタブコード\tが増えています。
また、板によってはスレを立てた者のBE-IDが追加情報として付与されています。
名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル 名前<>E-mail<>日付とIDとBE<>本文<>スレッドタイトル [BE-ID]
用語の定義
以下のために用語の定義をしておくと、 <を<とする方法をHTMLエンコードとします。
文字 | a | < | & | > | " | あ |
---|---|---|---|---|---|---|
HTMLエンコード | a | < | & | > | " | あ |
HTMLエンコードは、全ての欄で < と >、名前・メール・本文で " を変換しているようです。
そのことを利用したAAなどもありますから、できることなら
特殊文字(♥など)や実態参照(&#ddやÿなど)も
理解できるようにしておきましょう。
規則
文字コードは通常ではShift_JIS。
改行コードは\n。
投稿者が記入したものはHTMLエンコードされています。
名前
read.cgiでは、名前を太字で表示するためにBタグを付加しますが、
datでは単純な名前のみの記録です。
fusianasan等のホスト表示では、手入力の文字列と区別するために、
太字ではなく通常表示となっており、ホストの前に</b>で太字を終わらせ、
ホストの後に<b>で再び太字にしています。
このタグはdatに記録されています。
◆という文字があれば、それ以降の10文字(古い投稿では8文字)はトリップです。
トリップも通常表示とするために、同様に</b>と<b>で挟まれています。
普通に文字として◆を書くと、◇にされてしまいます。
同様に、★と●も特殊な条件の人しか使えず、☆と○にされます。
AタグのHREF属性の値として使われる事が多いかと思いますが、スペースや
シングルクォートはHTMLエンコードされずに、そのまま書き込めることに注意しましょう。
日付とID等
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: 秒
現在では、日付の書式も掲示板設定で変えられるようになっており、
既定通りの記録がなされているとは限りません。
その他、今後も様々なオマケデータがここに付加される可能性があるので、
データの解釈に柔軟性を持たせるのが良いかもしれません。
本文
改行は<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になるたびに次に進む