この文書は Futaboard の スレッド DAT、カタログ DAT、および JSON API(api.php
) の仕様をまとめたものです。
CRLF
(\r\n
)。文字コードは UTF-8(BOM なし)。<>
。#(0始まり) | キー(参考) | 型 | 説明 |
---|---|---|---|
0 | no | number | 投稿番号(スレ先頭も含む)。 |
1 | name | string | 投稿者名。 |
2 | email | string | メール/トリップ等(空可)。 |
3 | subject | string | 題名(空可)。 |
4 | now | string | 表示用時刻(例: YY/MM/DD(曜)HH:MM:SS 。ID が含まれる場合あり)。 |
5 | posttime_unix | number | UNIX 秒。 |
6 | comment | string(HTML) | 本文(必要最小限のタグを含む)。 |
7 | src | string | ソース画像/動画のパス(または URL)。無い場合は空。 |
8 | srcw | number | ソース幅 px(無い場合 0)。 |
9 | srch | number | ソース高 px(無い場合 0)。 |
10 | fsize | number | ファイルサイズ(Byte)。 |
11 | md5 | string | ソースの MD5(無い場合は空文字)。 |
12 | thumb | string | サムネイルのパス(または URL)。無い場合は空。 |
13 | thumbw | number | サムネイル幅 px(無い場合 0)。 |
14 | thumbh | number | サムネイル高 px(無い場合 0)。 |
15 | (空) | string | 画像ブロック直後の空フィールド(互換用の固定空)。 |
16 | sd | number | 「そうだね」数(0 以上)。 |
注: 画像が無い投稿でも、#7〜#14 の「画像ブロック」は ""/0
で必ず確保されます(空 8 フィールド)。
固定 17 フィールドの後ろは「拡張領域」です。現行実装では以下の順序で出力されます。
順 | 項目 | 型 | 説明 |
---|---|---|---|
1 | info_ext | string | 補足情報(例: 古いスレ警告、○月○日HH:MM頃消えます など)。 |
2 | footer_ext | string | 末尾追記領域(省略レス数など)。 |
3(末尾) | expire_unix | number / 空 | スレ消滅 UNIX 秒。 スレ先頭行のみ数値、それ以外の行は空文字。 行末は常に <> で終わります。 |
12345<>としあき<><>無念<>25/10/03(金)06:33:55 ID:abcdEF12<>1759440835<>本文テキスト<>/src/1759440835964.jpg<>250<>247<>90670<>2f1c9a...<>/thumb/1759440835964s.jpg<>250<>247<><>0<>07日03:11頃消えます<>省略 12 レス<>1759447218<>
…上記では thumbh
の後に <>
が 1 つ入り #15(空)となり、その次の 0
が sd
(#16)です。
12346<>としあき<><>無念<>25/10/03(金)06:45:42<>1759441542<>レス本文<><>0<>0<>0<><><>0<>0<><>1<><>
…画像ブロック #7〜#14 は空 8 フィールド、その直後の #15 は空、#16 の 1
が sd
。
互換のため、先頭17フィールド(#0〜#16)を固定部として切り出し、拡張領域は行末から解釈してください。
ファイル名は catelog.dat
(一般的な綴り)/ catalog.dat
(フォールバック)いずれか。1 行 = 1 スレです。
no<>now<>name<>email<>sub<>com<>ext<>w<>h<>tim<>fsize<>id
# | 項目 | 型 | 説明 |
---|---|---|---|
0 | no | number | スレ番号。 |
1 | now | string | 表示用時刻(IDを含む場合あり)。 |
2 | name | string | 投稿者名(空可)。 |
3 | email | string | メール欄。 |
4 | sub | string | 題名。 |
5 | com | string(HTML) | 本文冒頭など(HTML 可)。 |
6 | ext | string | 拡張子(例: .jpg / .png / .webm )。 |
7 | w | number | 画像幅。 |
8 | h | number | 画像高。 |
9 | tim | number | 投稿時刻ベースの ミリ秒(10 桁なら秒→×1000 で正規化推奨)。 |
10 | fsize | number | ファイルサイズ。 |
11 | id | string | ID 文字列(無い場合は now から抽出可)。 |
備考: クライアント側では src
を /{board}/src/{tim}{ext}
、thumb
を /{board}/thumb/{tim}s.jpg
として組み立て可能です。
api.php
)GET api.php?mode=json&res={thread_no}&start={start_no}
GET api.php
res
/start
が指定されない場合はカタログ JSON を返します。{
"old": 0|1,
"dispname": 0|1,
"dispsod": 0|1,
"die": "H:i" | "",
"dielong": "D, d M Y H:i:s GMT" | "",
"nowtime": 1739000000,
"maxres": "",
"res": { ... }, // 連想オブジェクト(下記)
"sd": { ... } // 連想オブジェクト(スレAPIのみ。キー=レス番号, 値=そうだね数)
}
res
要素キーはレス番号(文字列化)。値のオブジェクトは以下:
キー | 型 | 説明 |
---|---|---|
now | string | 表示用時刻(ID 含む場合あり)。 |
name | string | 名前。 |
email | string | メール。 |
sub | string | 題名。 |
com | string | 本文(HTML 可)。 |
ext | string | 拡張子(例: .jpg / .png / .webm / .mp4 )。 |
w , h | number | 画像/動画の幅・高。 |
tim | number | 投稿 UNIX ミリ秒。 |
fsize | number | ファイルサイズ。 |
id | string | now から抽出した ID(存在しない場合は空)。 |
rsc | number | レスを走査した順序カウンタ。 |
src , thumb | string | 絶対 URL(実装により相対のこともあり)。 |
res
要素キーはスレ番号(文字列化)。値は上記と同じ構造ですが、tim
はミリ秒文字列/数値、src
/thumb
は /{board}/src
//{board}/thumb
で合成されます。
{
"old": 0,
"res": {},
"sd": {},
"error": "Invalid parameters."
}