Closed ma8ma closed 7 months ago
まちBBSのスレを読み込む処理を更新する
背景や動機
現状のJDim(v0.11.0)には まちBBS のスレを読み込む方法が2つあります。
offlaw.cgiが導入された当初はdatにホスト情報が無くかわりにIDがありました。 調べたところofflaw.cgiは更新されておりホスト情報が追加されていました。
v2 APIは read.cgi のHTMLと同じく MODERATOR の名前欄に色が付きます。 ただし、JDimはread.cgiを利用したときに色情報を利用していません。
解決方法
read.cgiとofflaw.cgi dat API v1の利用を止めてdat API v2に切り替えることを提案します。
設定(C)
一般(G)
まちBBSでofflaw.cgiを使う(O)
まちBBSの offlaw.cgi v1 にホスト情報が追加されdatの形式が変更された件は今回把握しましたが 読み込みに不具合があるとスレやissueに報告はなく私自身の体験でも問題ありませんでした。
JDimのソースコードを調べたところ読み込みが上手く動作した理由が推測できました。
offlaw.cgi v1やv2を使ってdatを読み込むと ホスト情報がスレタイの後ろにくっついてdat解析の処理に送られますが、 スレタイにくっついたホスト情報にはデータ部の区切りを表す<>も含まれます。
<>
datのデータを解析する処理では余分なデータ部を無視して続行するように実装されていました。
偶然ですがデータ部の区切りと余分な部分を無視する仕組みが合わさって読み込みができるようです。
NodeTreeMachi::raw2dat()
NodeTreeBase::add_one_dat_line()
追加の情報
まちBBSのスレを読み込む処理を更新する
背景や動機
現状のJDim(v0.11.0)には まちBBS のスレを読み込む方法が2つあります。
offlaw.cgiが導入された当初はdatにホスト情報が無くかわりにIDがありました。 調べたところofflaw.cgiは更新されておりホスト情報が追加されていました。
v2 APIは read.cgi のHTMLと同じく MODERATOR の名前欄に色が付きます。 ただし、JDimはread.cgiを利用したときに色情報を利用していません。
解決方法
read.cgiとofflaw.cgi dat API v1の利用を止めてdat API v2に切り替えることを提案します。
設定(C)
>一般(G)
>まちBBSでofflaw.cgiを使う(O)
のオプション設定をリサイクルします。やらないこと
offlaw.cgiで取得したdatの互換性
まちBBSの offlaw.cgi v1 にホスト情報が追加されdatの形式が変更された件は今回把握しましたが 読み込みに不具合があるとスレやissueに報告はなく私自身の体験でも問題ありませんでした。
JDimのソースコードを調べたところ読み込みが上手く動作した理由が推測できました。
offlaw.cgi v1やv2を使ってdatを読み込むと ホスト情報がスレタイの後ろにくっついてdat解析の処理に送られますが、 スレタイにくっついたホスト情報にはデータ部の区切りを表す
<>
も含まれます。datのデータを解析する処理では余分なデータ部を無視して続行するように実装されていました。
偶然ですがデータ部の区切りと余分な部分を無視する仕組みが合わさって読み込みができるようです。
NodeTreeMachi::raw2dat()
まちBBSから取得したrawデータをdatに加工するNodeTreeBase::add_one_dat_line()
datを解析してノードツリーを構築する追加の情報