JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
44 stars 11 forks source link

Implement external BBSMENU #1307

Closed ma8ma closed 7 months ago

ma8ma commented 7 months ago

Implement CACHE::path_bbsmenu() and CACHE::path_bbsmenu_root()

外部BBSMENUのディレクトリと設定ファイルのファイルパスを表す文字列を返す関数を実装します。

Implement XML::Dom::remove_if()

Domオブジェクトが持つchildノードのうちpred(child)がtrueを返すものをすべて削除するメンバー関数を実装します。 remove_if()はchild自体もdeleteして開放します。また、削除したchildの数を返します。

Implement DBTREE::BBSMenu class

BBSMENUの取得と板一覧のデータを構築するクラスを実装します。

DBTREE::Rootクラスを元にして実装した関数があるため src/dbtree/bbsmenu.cpp のライセンスは GPL-2.0-only になります。 メンバー関数のうちBBSMenu::path_bbsmenu_boards_xml()は新規に書かれたコードなので抽出して GPL-2.0-or-later でライセンスすることが可能です。

Root: Implement member functions for external BBSMENU

Rootクラスに外部BBSMENUを取り扱うためのメンバーとメンバー関数を実装します。 外部BBSMENUの登録条件はURLの重複を許可しませんがBBSMENU名は重複できます。

Implement DBTREE interface functions for external BBSMENU

Rootクラスに実装された外部BBSMENUの機能にアクセスするインターフェース関数を実装します。

Implement AddEtcBBSMenuDialog class

外部BBSMENUを追加/編集するダイアログボックスを実装します。

AddEtcBBSMenuDialogクラスは新規に書かれたコードなので抽出して GPL-2.0-or-later でライセンスすることが可能です。

bbslist: Implement GUI for external BBSMENU

外部BBSMENUを追加するためのGUIを実装します。

動作

設定ファイルのフォーマットは予告なく変更する場合があります。 そのためファイルの編集による登録はサポートしていません。

この機能は実験的なサポートのため変更または廃止の可能性があります。

背景

修正前のJDimはBBSMENUの登録が一つに限られておりBBSMENUに含まれてない板は外部板に一つずつ追加していく必要がありました。 BBSMENUの登録数を増やして複数のBBSMENUから板を読み込めると便利になります。

manual: Add description for external BBSMENU

外部BBSMENUの説明をオンラインマニュアルに追加します。

関連のissue: #1301