FileSpec

ファイルの仕様

ログは設定を除き、"{プロファイルフォルダ}/bbs2chreader"の中に入っています。その中のファイルの仕様を書き出します。

板タイプ

components/idl/nsIBbs2chService.idl
板タイプ id
2ch 型 BBS 0
旧 2ch 型 BBS 1
Be@2ch BBS 2
したらば JBBS 3
まちBBS 4
通常ページ 5

掲示板群名

components/nsBbs2chService.js
URL 掲示板群名
*.2ch.net 2ch
*.machi.to machi
*.bbspink.com bbspink
jbbs.livedoor.jp jbbs
その他 outside

履歴

0.4以前

なし

0.5

history.sqlite
CREATE TABLE history(
    id           INTEGER PRIMARY KEY,        -- ID (1 origin の順番)
    url          TEXT NOT NULL,              -- URL
    title        TEXT NOT NULL,              -- タイトル
    last_visited INTEGER NOT NULL DEFAULT 0, -- 最終訪問日 (1970年1月1日00:00:00UTC からの秒数)
    visit_count  INTEGER NOT NULL DEFAULT 1, -- 訪問回数
    type         INTEGER NOT NULL DEFAULT 0  -- 履歴タイプ 0=板 1=スレッド [2=書き込み]
);

あぼ〜ん設定

./NGaddrs.txt
./NGid.txt
./NGnames.txt
./NGwords.txt

外部板一覧

storage.sqliteを使っているか未確認←0.4 系は storage.sqlite は未使用だと思います

0.4以前

./outside.xml

書式はbbsmenu.xmlと同じ。

0.5

FIXME

板一覧

rev.306前

-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageBbsmenu.js
CREATE TABLE bbsmenu_category(
    title TEXT NOT NULL
);
CREATE TABLE bbsmenu_board(
    title    TEXT NOT NULL,
    title_n  TEXT NOT NULL,
    url      TEXT NOT NULL,
    type     INTEGER NOT NULL,
    board_id EXT NOT NULL,
    category INTEGER NOT NULL
);

0.5 / 0.5pre2 (rev.306以降)

以下のファイルにあるbbsmenuテーブル。

./logs-050pre2/storage.sqlite (0.5pre2の場合)
./logs-050/storage.sqlite     (0.5の場合)
-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageBbsmenu.js
bbsmenu(
    title       TEXT NOT NULL,   -- 板名
    title_n     TEXT NOT NULL,   -- ユニコードを正規化した板名(全角英数→半角英数、半角カナ→全角カナなど)
    url         TEXT,            -- 板URL
    path        TEXT NOT NULL,   -- 階層(例: /2ch/何々カテゴリ/何々板/)
    board_type  INTEGER,         -- 掲示板群の種類
    board_id    TEXT,            -- 板ID
    is_category INTEGER NOT NULL -- カテゴリーかどうか(0=板, 1=カテゴリー)
}
CREATE INDEX IF NOT EXISTS bbsmenu_board_id_index ON bbsmenu(board_id);

0.5pre2

-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageBoard.js
CREATE TABLE board_data(
    board_id       TEXT NOT NULL,        -- 板の固有ID (/掲示板群名/板ID/)
    url            TEXT NOT NULL,        -- 板URL
    title          TEXT,                 -- 板タイトル (rev.316以降。未使用?)
    title_n        TEXT,                 -- ユニコードを正規化した板タイトル (rev.316以降。未使用? 全角英数→半角英数、半角カナ→全角カナなど。)
    type           INTEGER DEFAULT 0,    -- 板タイプ
    last_modified  INTEGER DEFAULT 0,    -- subject.txt の更新時間
    subscribed     INTEGER DEFAULT 0,    -- 購読中 (未使用)
    post_name      TEXT,                 -- 板レベルのコテハン (未使用)
    post_mail      TEXT                  -- 板レベルのコテハン (未使用)
);
CREATE INDEX IF NOT EXISTS board_data_board_id_index ON board_data(board_id); -- rev.303以降

0.5

-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageBoard.js
CREATE TABLE board_data(
    board_id       TEXT NOT NULL UNIQUE, -- 板の固有ID (/掲示板群名/板ID/)
    url            TEXT NOT NULL,        -- 板URL
    title          TEXT,                 -- 板タイトル
    title_n        TEXT,                 -- ユニコードを正規化した板タイトル(全角英数→半角英数、半角カナ→全角カナなど)
    type           INTEGER DEFAULT 0,    -- 板タイプ
    last_modified  INTEGER DEFAULT 0,    -- subject.txt の更新時間
    subscribed     INTEGER DEFAULT 0,    -- 購読中 (未使用)
    post_name      TEXT,                 -- 板レベルのコテハン (未使用)
    post_mail      TEXT                  -- 板レベルのコテハン (未使用)
);

0.4以前

未変換

./bbsmenu.html

上記をXMLに変換したもの

./bbsmenu.xml
<?xml version="1.0" encoding="SHIFT_JIS"?>
<bbsmenu>
<category title="{カテゴリ名}">
	<board title="{板名}" url="{板URL}" type="{板タイプ}"/>
</category>
</bbsmenu>

板設定

{ログファイルの場所}/SETTING.TXT

スレ一覧

0.4以前

{ログファイルの場所}/subject.txt

0.5pre2

-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageBoard.js
CREATE TABLE board_subject(
    board_id   TEXT NOT NULL,         -- 板の固有ID (/掲示板群名/板ID/)
    dat_id     TEXT NOT NULL,         -- スレッドID
    title      TEXT,                  -- スレッドタイトル
    title_n    TEXT,                  -- ユニコードを正規化したスレッドタイトル(全角英数→半角英数、半角カナ→全角カナなど)
    line_count INTEGER DEFAULT 0,     -- レス数
    ordinal    INTEGER DEFAULT 0      -- subject.txt 内での順序
);
CREATE INDEX IF NOT EXISTS board_subject_board_id_index ON board_subject(board_id); -- rev.303以降

0.5

-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageBoard.js
CREATE TABLE board_subject(
    thread_id  TEXT NOT NULL UNIQUE,  -- スレッドの固有ID (/掲示板群名/板ID/スレッドID/)
    board_id   TEXT NOT NULL,         -- 板の固有ID (/掲示板群名/板ID/)
    dat_id     TEXT NOT NULL,         -- スレッドID
    title      TEXT,                  -- スレッドタイトル
    title_n    TEXT,                  -- ユニコードを正規化したスレッドタイトル(全角英数→半角英数、半角カナ→全角カナなど)
    line_count INTEGER DEFAULT 0,     -- レス数
    ordinal    INTEGER DEFAULT 0      -- subject.txt 内での順序
);

スレッドログ

bbs2chreader のログファイルは、2ch互換 DAT ファイル (.dat)と、スレッドの情報が記述されたインデックスファイル (.idx)で構成されています。

スレの内容

{ログファイルの場所}/{dat番号}.dat

インデックスファイルの内容

0.4以前

{ログファイルの場所}/{dat番号}.idx
title={スレッドのタイトル}
lineCount={取得したレス数}
lastModified={DAT ファイルを取得したときのレスポンスヘッダ}
etag={DAT ファイルを取得したときのレスポンスヘッダ}

0.5pre2

./logs-050pre2/storage.sqlite
-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageThread.js
CREATE TABLE thread_data(
    /* id INTEGER PRIMARY KEY, */         -- rev.264前
    board_id           TEXT NOT NULL,     -- 板の固有ID (/掲示板群名/板ID/)
    url                TEXT NOT NULL,     -- スレッドURL
    dat_id             TEXT NOT NULL,     -- スレッドID
    title              TEXT,              -- スレッドタイトル
    title_n            TEXT,              -- ユニコードを正規化したスレッドタイトル(全角英数→半角英数、半角カナ→全角カナなど)

    line_count         INTEGER DEFAULT 0, -- レス数
    read_position      INTEGER DEFAULT 0, -- ここまで読んだ (未使用)
    http_last_modified TEXT,              -- DAT の最終更新時間 (HTTP Header)
    maru_getted        INTEGER DEFAULT 0, -- 0=通常の方法で取得したスレ, 1=●で取得したスレ
    stored             INTEGER DEFAULT 0, -- 0=生きたDAT, 1=DAT落ち
    post_name          TEXT,              -- スレッドレベルのコテハン (未使用)
    post_mail          TEXT,              -- スレッドレベルのメールアドレス (未使用)
    /* last_visited       INTEGER DEFAULT 0, */ --rev.273前
    /* visit_count        INTEGER DEFAULT 0, */ --rev.273前
    rate               INTEGER DEFAULT 0  -- (未使用)
);
/* CREATE INDEX IF NOT EXISTS thread_data_board_id_index ON thread_data(board_id); */ --rev.270前
/* CREATE INDEX IF NOT EXISTS thread_data_dat_id_index ON thread_data(dat_id); */ --rev.270前

0.5

./logs-050pre3/storage.sqlite
-- chrome/bbs2chreader/content/bbs2chreader/components/b2rStorageThread.js
CREATE TABLE thread_data(
    thread_id          TEXT NOT NULL UNIQUE, -- スレッドの固有ID (/掲示板群名/板ID/スレッドID/)
    board_id           TEXT NOT NULL,        -- 板の固有ID (/掲示板群名/板ID/)
    url                TEXT NOT NULL,        -- スレッドURL
    dat_id             TEXT NOT NULL,        -- スレッドID
    title              TEXT,                 -- スレッドタイトル
    title_n            TEXT,                 -- ユニコードを正規化したスレッドタイトル(全角英数→半角英数、半角カナ→全角カナなど)

    line_count         INTEGER DEFAULT 0,    -- レス数
    read_position      INTEGER DEFAULT 0,    -- ここまで読んだ (未使用)
    http_last_modified TEXT,                 -- DAT の最終更新時間 (HTTP Header)
    maru_getted        INTEGER DEFAULT 0,    -- 0=通常の方法で取得したスレ, 1=●で取得したスレ
    stored             INTEGER DEFAULT 0,    -- 0=生きたDAT, 1=DAT落ち
    post_name          TEXT,                 -- スレッドレベルのコテハン (未使用)
    post_mail          TEXT,                 -- スレッドレベルのメールアドレス (未使用)
    rate               INTEGER DEFAULT 0     -- (未使用)
);

ログファイルの場所

0.5

掲示板群

./logs-050/{掲示板群名}/{カテゴリ}/

外部板

./logs-050/outside/{ホスト名}/{カテゴリ}/

0.5pre2

掲示板群

./logs-050pre2/{掲示板群名}/{カテゴリ}/

外部板

./logs-050pre2/outside/{ホスト名}/{カテゴリ}/

0.5pre1

掲示板群

./logs-050pre1/{掲示板群名}/{カテゴリ}/

外部板

./logs-050pre1/outside/{ホスト名}/{カテゴリ}/

0.4以前

./logs/{ホスト名}/{カテゴリ}/

スキン

SkinSpec参照。

投稿フィルタ

TODO。後回し。