!xDy,!chtt,!poolコマンドの実装 #37

Merged
stat2 merged 3 commits from konkon-fox/delightly-v2fork:main into main 2023-10-27 19:29:18 +09:00
Contributor

追加コマンドについての概要

/test/extend/extra-commands/以下に各コマンドのファイルを作り、/test/bbs-main.phpincludeする形を取っています。
コマンドを使用した際に、システムメッセージが表示される場合があります。こちらは<hr>で区切った下方に表示するという形で統一するのが良いのではないかと考えています。
(例)

利用者の本来のレス
<hr>
★何らかのシステムメッセージ。<br>
★何らかのシステムメッセージ。<br>

!xDy(dice)コマンドについて

概要

サイコロ機能です。全員が利用可能です。
本文中に!xDyまたは!xdyで発動し、サイコロを振った結果が表示されます。
各目の表示機能については選択形式としました。数字間の文字がDだと非表示、dだと表示されます。
(例)

!3D6
!3d6

【3D6:9】
【3d6:15(6+3+6)】

設定

x(個数)の最大値y(出目)の最大値1レス中でダイスコマンドを使える最大回数が変更可能です。
現在の値に強い根拠は無いので特にご意見いただきたい点です。サーバーへの負荷を考えるならあまり大きくない方が良いかと思います。

!chttコマンドについて

概要

スレタイを変更するコマンドです。スレ主、管理人、コマンド権限を持つCAPが利用可能です。
本文中に!chtt:◯◯で◯◯というスレタイに変更します。

迷っている点

index.json(TL)への反映についてです。index.jsonは各レスが独立して管理されており、レスをした際のスレタイも情報として持っているのですが、それを置換するかどうか迷っています。
現在は最新のスレタイで置換する処理を含んでいるのですが、レスをした時点でのスレタイのまま残す方が良いのではとも思っています。こちらは特にご意見いただきたい点です。

!poolコマンドについて

概要

スレを即座に落とすコマンドです。スレ主、管理人、コマンド権限を持つCAPが利用可能です。
本文中に!poolで発動します。

その他の変更点

https://git.3chan.cc/konkon-fox/delightly-v2fork/src/branch/main/test/bbs-main.php#L494
この部分の変更は単純にDispErrorという存在しない関数をErrorに置換しただけです。

## 追加コマンドについての概要 `/test/extend/extra-commands/`以下に各コマンドのファイルを作り、`/test/bbs-main.php`で`include`する形を取っています。 コマンドを使用した際に、システムメッセージが表示される場合があります。こちらは\<hr\>で区切った下方に表示するという形で統一するのが良いのではないかと考えています。 (例) ``` 利用者の本来のレス <hr> ★何らかのシステムメッセージ。<br> ★何らかのシステムメッセージ。<br> ``` ## !xDy(dice)コマンドについて ### 概要 サイコロ機能です。全員が利用可能です。 本文中に`!xDy`または`!xdy`で発動し、サイコロを振った結果が表示されます。 各目の表示機能については選択形式としました。数字間の文字が`D`だと非表示、`d`だと表示されます。 (例) ``` !3D6 !3d6 ``` ↓ ``` 【3D6:9】 【3d6:15(6+3+6)】 ``` ### 設定 `x(個数)の最大値`、`y(出目)の最大値`、`1レス中でダイスコマンドを使える最大回数`が変更可能です。 現在の値に強い根拠は無いので特にご意見いただきたい点です。サーバーへの負荷を考えるならあまり大きくない方が良いかと思います。 ## !chttコマンドについて ### 概要 スレタイを変更するコマンドです。スレ主、管理人、コマンド権限を持つCAPが利用可能です。 本文中に`!chtt:◯◯`で◯◯というスレタイに変更します。 ### 迷っている点 index.json(TL)への反映についてです。index.jsonは各レスが独立して管理されており、レスをした際のスレタイも情報として持っているのですが、それを置換するかどうか迷っています。 現在は最新のスレタイで置換する処理を含んでいるのですが、レスをした時点でのスレタイのまま残す方が良いのではとも思っています。こちらは特にご意見いただきたい点です。 ## !poolコマンドについて ### 概要 スレを即座に落とすコマンドです。スレ主、管理人、コマンド権限を持つCAPが利用可能です。 本文中に`!pool`で発動します。 ## その他の変更点 https://git.3chan.cc/konkon-fox/delightly-v2fork/src/branch/main/test/bbs-main.php#L494 この部分の変更は単純に`DispError`という存在しない関数を`Error`に置換しただけです。
konkon-fox added 1 commit 2023-10-26 01:15:00 +09:00
Author
Contributor

上記に説明した実装を行いました。
よろしければテストしてコードレビューをいただけると幸いです。
また、ご質問や修正案等があればどうぞお知らせください。

上記に説明した実装を行いました。 よろしければテストしてコードレビューをいただけると幸いです。 また、ご質問や修正案等があればどうぞお知らせください。
First-time contributor

@konkon-fox
コード作成ありがとうございますー
はるひの環境で試していますー
https://haruhiv2.com/sample

修正を行ったのは最初のdelight v2ソースコードより
・bbs-main.phpの最新への反映
・各phpファイルの追加

ですが専ブラでコマンドを打ち込んだところbbs-main342行目にてエラーが……
コマンド以外のレスは正常に動作するので参照が上手くいってないのかなー?と思っていますが
何か足りていないでしょうかー?

https://i.imgur.com/Rm09lJB.jpg

@konkon-fox コード作成ありがとうございますー✨ はるひの環境で試していますー https://haruhiv2.com/sample 修正を行ったのは最初のdelight v2ソースコードより ・bbs-main.phpの最新への反映 ・各phpファイルの追加 ですが専ブラでコマンドを打ち込んだところbbs-main342行目にてエラーが…… コマンド以外のレスは正常に動作するので参照が上手くいってないのかなー?と思っていますが 何か足りていないでしょうかー? https://i.imgur.com/Rm09lJB.jpg
Author
Contributor

はるひさんテストありがとうございます。
エラーに関してはimplodeの構文ミスと思われます。
bbs-main.php342行目あたり、最新のコードは以下の通りです。

// >>1への変更を反映させる
if (!$newthread && !$tlonly && $reload) {
  array_shift($LOG);
  array_unshift($LOG, $n."<>".$m."<>".$d."<>".$message."<>".$subject."\n");
  $fp = '';
  foreach($LOG as $tmp) $fp .= $tmp;
  file_put_contents($THREADFILE, $fp, LOCK_EX);
  $shiftJisDat = mb_convert_encoding(implode('', $LOG), "SJIS-win", "UTF-8");
  file_put_contents($DATFILE, $shiftJisDat, LOCK_EX);
}

こちらのコードの一部では以前implodeの構文ミスを修正しています。74004c4a94

予想になりますがbbs-main.phpの最新版を正しくコピー出来ていないのかもしれません。よろしければご確認ください。

はるひさんテストありがとうございます。 エラーに関しては`implode`の構文ミスと思われます。 `bbs-main.php`342行目あたり、最新のコードは以下の通りです。 ``` // >>1への変更を反映させる if (!$newthread && !$tlonly && $reload) { array_shift($LOG); array_unshift($LOG, $n."<>".$m."<>".$d."<>".$message."<>".$subject."\n"); $fp = ''; foreach($LOG as $tmp) $fp .= $tmp; file_put_contents($THREADFILE, $fp, LOCK_EX); $shiftJisDat = mb_convert_encoding(implode('', $LOG), "SJIS-win", "UTF-8"); file_put_contents($DATFILE, $shiftJisDat, LOCK_EX); } ``` こちらのコードの一部では以前`implode`の構文ミスを修正しています。https://git.3chan.cc/stat2/delightly-v2fork/commit/74004c4a9496c608b055e4dac782b337e06d2b67 予想になりますが`bbs-main.php`の最新版を正しくコピー出来ていないのかもしれません。よろしければご確認ください。
First-time contributor

ありがとうございますー
bbs-mainをコピーし直したら動作しましたー
しかし今度は文字が太字になってコマンドが反映されず?
もうちょっと色々試してみますー

ありがとうございますー bbs-mainをコピーし直したら動作しましたー しかし今度は文字が太字になってコマンドが反映されず? もうちょっと色々試してみますー
First-time contributor

あー!
extra-commandsフォルダの作成を見落としてましたー

あー! extra-commandsフォルダの作成を見落としてましたー
Owner

こちらでは各コマンドいい感じに使えてます。
TLへの反映はちょっと迷いますね。

こちらでは各コマンドいい感じに使えてます。 TLへの反映はちょっと迷いますね。
Author
Contributor

stat2さんテストありがとうございます。
TLへの反映についてはなるべく多くの人の意見をいただきたい所ではありますね。

stat2さんテストありがとうございます。 TLへの反映についてはなるべく多くの人の意見をいただきたい所ではありますね。
konkon-fox added 2 commits 2023-10-27 14:29:07 +09:00
Author
Contributor

!chttコマンドについて、index.json(TL)内のレスのスレタイ置換処理は不要だと判断したため削除しました。根拠としては以下の通りです。

  • タイムラインのスレタイ置換処理を行う強い根拠が無い。
  • 処理を減らせるのでおそらく微々たるものではあるがサーバーの負荷軽減や書き込み所要時間の減少が見込める。
  • なんOにてタイムラインのスレタイはそのままの方が良いという意見が2つほどあった。置換したほうが良いという意見は見当たらなかった。
  • 私個人の意見としても不要だと思う。

また、各追加コマンドにおいて名前欄に!nocmdがあると発動しないようにする処理を加えました。

`!chtt`コマンドについて、`index.json`(TL)内のレスのスレタイ置換処理は不要だと判断したため削除しました。根拠としては以下の通りです。 - タイムラインのスレタイ置換処理を行う強い根拠が無い。 - 処理を減らせるのでおそらく微々たるものではあるがサーバーの負荷軽減や書き込み所要時間の減少が見込める。 - なんOにてタイムラインのスレタイはそのままの方が良いという意見が2つほどあった。置換したほうが良いという意見は見当たらなかった。 - 私個人の意見としても不要だと思う。 また、各追加コマンドにおいて名前欄に`!nocmd`があると発動しないようにする処理を加えました。
konkon-fox changed title from WIP: !xDy,!chtt,!poolコマンドの実装 to !xDy,!chtt,!poolコマンドの実装 2023-10-27 14:39:57 +09:00
Author
Contributor

各所でのテストご協力ありがとうございます。農園等でも多くのスレでテスト利用いただけてるようです。
現状、追加されたコマンドでのバグは発見されていないようなのでWIPは外しました。

各所でのテストご協力ありがとうございます。農園等でも多くのスレでテスト利用いただけてるようです。 現状、追加されたコマンドでのバグは発見されていないようなのでWIPは外しました。
Owner

ありがとうございます。
私も意見を聞いてみてTLはレス単体でも見ることや、今後他から取得されることも想定されるので置換無しがいいなと思いました。

ありがとうございます。 私も意見を聞いてみてTLはレス単体でも見ることや、今後他から取得されることも想定されるので置換無しがいいなと思いました。
stat2 merged commit 2f3bd763fa into main 2023-10-27 19:29:18 +09:00
Author
Contributor

マージ処理ありがとうございます。

マージ処理ありがとうございます。
Sign in to join this conversation.
No description provided.