このリポジトリは ohno-old を TypeScript で書き換えたものです
セルフホストが面倒なら OHNO を導入すると幸せになれます
- ボイスチャンネルに参加します
- 権限がない場合は参加できません
- ボイスチャンネルから退出します
- 同じボイスチャンネルにいない場合は実行できません
- 現在のユーザー設定を表示します
- 話者を設定します
- 現在日本語ネイティブの話者しか対応していません
- 読み上げるスピードを 0.5 から 2.0 の数値で指定します
- デフォルトは 1 です
- 読み上げる高さを 0.5 から 1.5 の数値で指定します
- デフォルトは 1 です
- ユーザー設定をデフォルトにリセットします
- 現在のサーバー設定を表示します
- サーバー設定をデフォルトにリセットします
- 辞書を編集します
- 単語が既に存在する場合は上書きされます
- 辞書を削除します
- 単語が存在しない場合はエラーを返します
- 辞書のリストを CSV で送信します
- 一応 Excel で開くことができるはずです
以下のサブコマンドで読み上げる内容を個別に ON/OFF できます:
join-leave- 入退室アナウンスmove- チャンネル移動アナウンスscreen-share- 画面共有アナウンスcamera- カメラ ON/OFF アナウンスmute- ミュートアナウンスdeafen- スピーカーミュートアナウンスbot-messages- Bot メッセージ読み上げstickers- スタンプ名読み上げattachments- 添付ファイル種別読み上げurls- URL 省略アナウンス
- 簡易的なヘルプを見られます
この Bot は,メッセージのテキストだけではなく,そのテキスト以外のコンテンツやボイスチャンネルに関連する操作についても読み上げます.以下がそのリストです.
- 添付ファイルとその種類
- スタンプや絵文字の名前
- URL(「URL省略」と読み上げます)
- ユーザー・チャンネルのメンション
- ユーザーの入退室・移動(移動先のチャンネルも含む)
- 画面共有 (GoLive) とカメラ配信の開始・終了
- ミュート・スピーカーミュートの ON/OFF
また,s 単体で読み上げ対象のチャンネルにメッセージが投稿された場合,現在読み上げているコンテンツと読み上げのキューに入っているコンテンツを破棄し,読み上げを停止します.
乱用を防止するため,一つのメッセージにつき読み上げする字数・秒数の制限があります.辞書などによる置換後の字数で 200 文字か,5 秒以内どちらか短い方で読み上げが強制的に停止されます.
- Bot のメッセージが読み上げられる!
/guild-settings bot-messagesで Bot メッセージの読み上げを無効にできます
- 人間が全員ボイスチャンネルからいなくなったのに OHNO が退出しない
- 仕様です.これは開発者である yuimaru の思想によってそうされていて,読み上げ Bot がボイスチャンネルを退出するべきタイミングは,ボイスチャンネルを移動するタイミングのみだと思っているのでそうしています.
誤字ではないです.普通逆だろと思いましたよね.
これには私自身のスキルに問題があって,もっと Rust のことを深く理解してから Rust を使って Bot を作成したいと思ったからです.
なぜ TypeScript なのかというと,薄い Discord API Wrapper の @discordjs/next (@discordjs/{core, ws, rest, util}) を推したいからです.
これらのパッケージは(おそらく,動かそうと思えば)どのランタイムでも動くからです.
まあ Bot の用途によってどの情報が欲しいとか,どの情報が不要とかあるじゃないですか, discord.js 本体は全ての情報をキャッシュしたりとかするわけですよ.
これらのパッケージにはキャッシュとかいう概念もありませんから,自分で実装するとかそういうことをするわけで,これができるとパフォーマンスの面でも嬉しいです.