Skip to content

Commit

Permalink
Bump: package version to v4.3.0 (#2433)
Browse files Browse the repository at this point in the history
* Bump: package version to v4.3.0

* update docs

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Docs: update

* Docs: update

* Update CHANGELOG.md

* Update CHANGELOG.md

* Docs: update

* Fix: actual fix for weird time (#2441)

* Fix: songs added in incorrect position in queue (#2442)

* Fix(commands/bulk_play): incorrect search keyword (#2443)

* Docs: footer

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
mtripg6666tdr and github-actions[bot] authored Jun 27, 2024
1 parent ca703f9 commit 395e045
Show file tree
Hide file tree
Showing 118 changed files with 3,547 additions and 96 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ on:
- master
paths:
- 'docs/**'
release:
types:
- published

concurrency:
group: ${{ github.workflow }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy-snow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ jobs:

- name: Update deployment status
uses: bobheadxi/deployments@v1
if: always()
with:
step: finish
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
.vs/
node_modules
dist
out
typings
*.env
*.exe
Expand Down
85 changes: 49 additions & 36 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,58 @@
# v4.2.0
# v4.3.0
## 機能追加
* ライブ動画に発行されるURLを解釈できるようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2032)
* ドライブのファイルのタイトルが表示されるようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2062)
* 音声ファイルのタイトルがメタデータに記録されている場合それを抽出して表示するようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2127)
* いくつかの新しい音声エフェクトを追加しました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2140)
* DJロールに"DJ"以外の名前が利用できるようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2147)
* [`config.json``djRoleNames`](https://web.usamyon.moe/Discord-SimpleMusicBot/docs/setup/installation/configuration#djrolenames-string--null--undefined)で変更が可能です。
* 利用状況に関するデータを収集するようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2157)
* 詳しくは[ドキュメント](https://sr.usamyon.moe/dsmb-telemetry)を参照してください。
* 一時停止中にボイスチャンネルのメンバーがボットのみになった際にも、一定時間経過後に自動的にボイスチャンネルから退出するようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2279)
* スキップ投票のオン・オフを切り替えられる機能を追加 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2280)
* 「現在再生中」パネルの表示設定を追加 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2280)
* 「表示しない」「通知を送信しない」「通常送信(デフォルト)」の中から選べるようになりました。設定はサーバーごとに保持されます。
* 指定した時間経過したのちに、自動的にボイスチャンネルから切断する、スリープタイマー機能を追加 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2414)
* 最大五曲分まで、追加したい曲をキーワードベースで追加できる機能「バルク再生」を追加 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2428)
* 従来でも、「再生」コマンドの引数として、URLを複数個スペース区切りで指定することにより、楽曲を複数、一括で追加することはできましたが、今回は、キーワードが複数あった場合でもできるような機能となります。
* メッセージベースのコマンドの場合、スペースが引数の区切りと判断されるため、一つの楽曲を指定したつもりでもキーワードが複数あると別の楽曲として認識され、意図したとおりに動作しない場合があります。今後のリリースで修正する予定です。
* 例:現在の仕様では、`曲A 歌ってみた`と「バルク再生」を実行した場合、実際には、曲Aの歌ってみたを検索したいにも関わらず、`曲A``歌ってみた`がそれぞれ楽曲検索され二曲分追加されます。
## 機能修正/変更
* 音量調整が改善され、音量の数字が実際に聞こえる音の大きさにより近くなりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/1651)
* 時間がたって古くなったキャッシュを自動的に無効化するようになりました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2145)
* 旧バージョンよりエラーの発生回数が減ることが見込まれます
* 特定の条件を満たした際に、スラッシュコマンドを一括上書き更新することで立ち上がるまでの時間を短くしました(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2146)
<!-- ## バグ修正 -->
* よりスムーズに再生されるよう表示を改善 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2416, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2432)
* コンソールに表示されるログの文言を一部修正 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2427)
## バグ修正
* BGM 機能が有効の場合、一定の条件下でBGM機能が無効にできない問題を修正 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2239)
* `SIGINT`でプロセスを終了しようとした際、`undefined`と表示される問題を修正 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2262)
* ニコニコ動画の再生に関する問題を修正(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2407, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2408)
* ボットにコマンドを送信していなくても通常のチャットでレートリミットがかかってしまう問題を修正(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2412)
* 楽曲を削除したり、移動すると、均等再生を設定していても適切にソートされない問題を修正 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2415)
* 「フレーム」コマンドを実行時に表示される奇妙な小数点以下の数値を修正 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2430, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2441)
* 特定の条件下で、曲を追加した際に意図した場所と違う位置に曲が追加される問題を修正 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2442)
## ドキュメント
* リンク切れを修正(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2090)
* 音声エフェクトのドキュメントを追加(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2148)
* Replitのガイドは継続して保守できないと判断し削除(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2166)
* ドキュメントの継続的な更新(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2126)
* Replit で使用する方法のページをドキュメントサイトから削除 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2167)
* Replitでのホストは、来年以降Replit Deploymentsを利用する必要があり、Replit Deploymentsは完全有料なため、ドキュメントの保守が不可能になったためです。
* もし、Replit Deploymentsを有償でご利用されている方で、ドキュメントを執筆していただける方がいらっしゃれば、ぜひドキュメントの再度の執筆をお願いしたく思っております。ご迷惑をおかけいたしますが、何卒ご了承くださいませ。
* ドキュメントの継続的な更新 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2195, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2366, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2369, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2394, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2433)
## 依存関係のアップデート
* @discordjs/voice 0.16.0 => 0.16.1
* @sinclair/typebox 0.31.17 => 0.31.28
* candyget 0.5.5 => 0.5.6
* i18next-fs-backend 2.2.0 => 2.3.1
* spotify-url-info 3.2.8 => 3.2.10
* @mtripg6666tdr/oceanic-command-resolver 1.3.0 => 1.4.2
* @sinclair/typebox 0.31.28 => 0.32.34
* dotenv 16.3.1 => 16.4.5
* html-entities 2.4.0 => 2.5.2
* https-proxy-agent 7.0.2 => 7.0.4
* i18next 22.5.1 => 23.11.5
* oceanic.js 1.8.1 => 1.11.0
* spotify-url-info 3.2.10 => 3.2.15
* throttle-debounce 5.0.0 => 5.0.2
* tslib 2.6.2 => 2.6.3
* そのほか、数々の脆弱性の問題に対処
### Optional
* @distube/ytsr 1.2.0 => 2.0.0
* このバージョンからオプション(optional)になりました。
* mongodb 6.1.0 => 6.3.0
* zlib-sync 0.1.8 => 0.1.9
* @distube/ytsr 2.0.0 => 2.0.4
* mongodb 6.3.0 => 6.7.0
## その他の変更
* ワークフローで使用されるNode.jsのバージョンをv20に更新(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/1494)
* Dockerで使用されるNode.jsのバージョンをv20に更新(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/1495)
* 継続的な翻訳の更新(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2099, https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2122)
* 内部のユーティリティ関数の改善(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2138)
* 音声エフェクトの内部構造の改善(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2139)
* 新しいビルド方式を試験的に導入 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2220)
* 新しいビルド方式により、大量のファイルを数個のファイルに減らすことにより、メモリ消費が劇的に減少しました。
* クローンして実行している場合、この機能を利用するには、通常とは異なる操作が必要です。
* 詳細の方法については、[クローンして実行する](http://web.usamyon.moe/Discord-SimpleMusicBot/docs/setup/installation/normal)の最下部をご確認ください。
* Docker や Docker Compose をご利用の場合、この機能はデフォルトで有効になっています。
* プレイリストパーサーとして新しいライブラリ(@distube/ytpl)を導入(https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2260)
* Node.js v16 のサポートを継続 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2261)
* TypeScript の Strict Type Checking を有効化 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2277)
* コードベースの継続的な改善 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2371)
* ライセンスの年号を更新 (https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/pull/2413)

### その他の特記事項
#### 利用状況に関するデータの収集について
ボットの利用状況に関する匿名の情報と、発生した想定されていないエラーに関するログを自動的に収集するようになりました。
これらのデータはボットの機能改善に活用されます。
詳細は、<https://sr.usamyon.moe/dsmb-telemetry>を参照してください。
#### Node.jsのバージョンについて
Node.js v16以上の環境で動作することを想定していますが、できれば最新のLTS版を推奨しています。
古いバージョンの場合、一部機能が制限されることがあります。詳しくは[こちら](https://web.usamyon.moe/Discord-SimpleMusicBot/docs/next/setup/support#nodejs%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AB%E3%82%88%E3%82%8B%E6%A9%9F%E8%83%BD%E3%81%AE%E9%81%95%E3%81%84)をご覧ください。
Expand All @@ -52,4 +63,6 @@ Node.js v16以上の環境で動作することを想定していますが、で
* 引き続きバグ修正は最優先事項として対処していきますので、バグを発見された際はお気軽にissueを開くか、サポートサーバーまでお知らせください。
* 随時Pull Requestも受け付けております。開発にご協力いただける方は、ぜひともよろしくお願いします。

[**マイルストーン**](https://github.com/mtripg6666tdr/Discord-SimpleMusicBot/milestone/15?closed=1)

---
37 changes: 24 additions & 13 deletions builder.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ function resolveRelativePath(spec){

/** @param {string} path */
function createDefaultBuilder(path){
return async function(){
return async function({ generateMetafile }){
const res = await build({
entryPoints: [path],
minify: false,
Expand All @@ -27,6 +27,7 @@ function createDefaultBuilder(path){
"global.BUNDLED": "true",
},
sourcemap: "inline",
metafile: generateMetafile,
});

const bundled = res.outputFiles[0].text;
Expand All @@ -36,25 +37,31 @@ function createDefaultBuilder(path){
mangle: true,
});

return { bundled, minified };
return { bundled, minified, metafile: res.metafile };
};
}

async function bundleAssets({ leaveBuildArtifact }){
async function bundleAssets({ leaveBuildArtifact, generateMetafile, useOutDir }){
const [mainCompilation, workerCompilation] = await Promise.all([
createDefaultBuilder("build/index.js")(),
createDefaultBuilder("build/AudioSource/youtube/worker.js")(),
createDefaultBuilder("build/index.js")({ generateMetafile }),
createDefaultBuilder("build/AudioSource/youtube/worker.js")({ generateMetafile }),
]);

if(!fs.existsSync(resolveRelativePath("./dist"))){
await fs.promises.mkdir(resolveRelativePath("./dist"));
const outDirBase = useOutDir ? "./out" : "./dist";
const outPath = (path) => `${outDirBase}/${path}`;

if(!fs.existsSync(resolveRelativePath(outDirBase))){
await fs.promises.mkdir(resolveRelativePath(outDirBase), { recursive: true });
}

await Promise.all([
fs.promises.writeFile(resolveRelativePath("./dist/index.js"), mainCompilation.bundled),
fs.promises.writeFile(resolveRelativePath("./dist/index.min.js"), mainCompilation.minified),
fs.promises.writeFile(resolveRelativePath("./dist/worker.js"), workerCompilation.bundled),
fs.promises.writeFile(resolveRelativePath("./dist/worker.min.js"), workerCompilation.minified),
]);
fs.promises.writeFile(resolveRelativePath(outPath("index.js")), mainCompilation.bundled),
fs.promises.writeFile(resolveRelativePath(outPath("index.min.js")), mainCompilation.minified),
mainCompilation.metafile && fs.promises.writeFile(resolveRelativePath(outPath("index.meta.json")), JSON.stringify(mainCompilation.metafile, null)),
fs.promises.writeFile(resolveRelativePath(outPath("worker.js")), workerCompilation.bundled),
fs.promises.writeFile(resolveRelativePath(outPath("worker.min.js")), workerCompilation.minified),
workerCompilation.metafile && fs.promises.writeFile(resolveRelativePath(outPath("worker.meta.json")), JSON.stringify(workerCompilation.metafile)),
].filter(Boolean));

if(!leaveBuildArtifact){
await rimraf(resolveRelativePath("./build"));
Expand Down Expand Up @@ -88,7 +95,11 @@ switch(process.argv[2]){
bakeDynamicImports();
break;
case "bundle":
void bundleAssets({ leaveBuildArtifact: process.argv[3] === "--leave-build-artifact" });
void bundleAssets({
leaveBuildArtifact: process.argv.includes("--leave-build-artifact"),
generateMetafile: process.argv.includes("--generate-metafile"),
useOutDir: process.argv.includes("--use-out-dir"),
});
break;
default:
console.error("Invalid verb.");
Expand Down
28 changes: 28 additions & 0 deletions docs/docs/guide/feature/10-sleeptimer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# スリープタイマー機能
(v4.3.0で追加)

事前に設定しておくことで、一定時間経過した後、自動的にボットをボイスチャンネルから退出させることができます。

時間設定は、秒単位で直接指定できるほか、現在再生中の曲が終了した時点に設定することもできます。

## 使用方法
### スリープタイマーを設定する
[`スリープタイマー`コマンド](../commands/sleeptimer.md)を使用して、設定することができます。

* 1分23秒後に終了するよう設定する場合、以下のようにコマンドを送信します。
```
スリープタイマー 1:23
```
* 1時間23分45秒後に終了するように設定する場合、以下のようにコマンドを送信します。
```
スリープタイマー 1:23:45
```
* 現在再生中の曲が終了した際に設定する場合、以下のようにコマンドを送信します。
```
スリープタイマー $
```

指定された時点になると、ボットは自動的にボイスチャンネルから切断します。この際、キュー内のアイテムは保持されたままになります。

### スリープタイマーを解除する
スリープタイマーを解除するには、何も引数を付与せずに、スリープタイマーコマンドを送信してください。
44 changes: 44 additions & 0 deletions docs/docs/guide/settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
sidebar_position: 4
---
# ボットの設定
ボットをより便利に使えるようにするために、ボットには、いくつかの設定項目が用意されています。
これらの設定は、サーバーごとに別々に管理されます。
この節では、ボットで利用できる設定項目について説明をします。

:::info
ボットの管理者の方が、ボットにデータベースを設定していない場合、
何らかの理由でボットがいったんオフラインになると、設定がクリアされますことを、ご承知おきください。
:::

## スキップ投票の設定
デフォルトの設定では、ボットで楽曲をスキップする操作を行った場合、状況に応じてボットの動作が異なります。

* スキップ操作を行ったのが、サーバーの管理権限を持っていたり、[DJロール](../setup/command-permissions.md)を保持している場合、
または、ボイスチャンネルに接続しているユーザーが一人だけだった場合、スキップ操作が即時に行われます。
* スキップ操作を行ったのが、上の条件に該当しないユーザーであり、かつボイスチャンネルに複数人が接続している場合、
スキップ投票のパネルが作成されます。

スキップ投票の設定を変更することにより、状況に関わらず即時でスキップ操作が行われるようにすることができます。
この設定を利用するには、[`設定>スキップ投票`コマンド](./commands/setting_skipvote.md)を使用してください。

### 設定例

* スキップ投票を**有効にするには**`設定>スキップ投票 true`
* スキップ投票を**無効にするには**`設定>スキップ投票 false`

## 現在再生中パネルの通知設定
デフォルトの設定では、新しい楽曲の再生を始めるたびに、現在どの曲が再生されているかを表示する、「現在再生中パネル」が表示されます。
この表示が煩わしく感じた場合、設定を変更することで、以下の三種類のどれかに動作を変更できます。

1. 通常通り現在再生中パネルを表示する、
1. 通知なしで現在再生中パネルを表示する
1. 現在再生中パネルを表示しない

この設定を変更するには、[`設定>現在再生中`コマンド](./commands/setting_nowplaying.md)を使用してください。

### 設定例

* 現在再生中パネルの表示を**通常設定にするには**`設定>現在再生中 normal`
* 現在再生中パネルの表示を**通知なしで送信するには**`設定>現在再生中 silent`
* 現在再生中パネルの表示を**無効にするには**`設定>現在再生中 disabled`
Loading

0 comments on commit 395e045

Please sign in to comment.