おしゃべりぼっと!もだねちゃん
もだねちゃんは、ボイスチャットツール Discord 上で働いてくれる読み上げ Bot です。
テキストチャンネルに投稿された文章をボイスチャンネルで読み上げてくれます。
「しゃべるのが恥ずかしい」「深夜なので声を出しにくい」などの理由でお声を出しづらい方でも、お友達と楽しく会話することができます。
働いている様子はこちら!※Youtube へ移動します
📙お仕事内容ガイドブック をご覧ください。
※ ご協力いただいている少数のサーバーにて試験運用中のため、現在 Bot の一般公開は行っておりません。
環境を構築して Bot を稼働させる場合は以下の手順で行います。
実行に関しては自己責任でお願いします。
- Docker および Docker Compose が実行可能な環境(手順は WSL2 上での実行)
- 約 850 MB 以上の空き容量(下記内訳)
discordbot-mdn_main
イメージ: 546 MBpostgres
イメージ: 217 MBdiscordbot-mdn_db-volume
ボリューム: 50 MB ~
- Discord Bot のトークン
-
リポジトリをクローン。
$ git clone https://github.com/kenkenpa198/discordbot-mdn.git
-
リポジトリのルートディレクトリへ移動。
$ cd discordbot-mdn
-
.env
ファイルを作成し、パスワードとトークンを記述。$ cp .env.sample .env $ vim .env
# PostgreSQL イメージ用の環境変数 POSTGRES_USER=discordbot-mdn POSTGRES_PASSWORD=__ENTER_PG_PASSWORD_HERE__ # 好みのパスワードを記述 POSTGRES_DB=discordbot-mdn-db # PostgreSQL の接続用 URL DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} # bot のトークン BOT_TOKEN=__ENTER_BOT_TOKEN_HERE__ # Discord Bot のアクセストークンを記述
-
docker-compose
コマンドでコンテナを立ち上げ。$ docker-compose up -d Creating network "discordbot-mdn_default" with the default driver ... Creating discordbot-mdn_db_1 ... done Creating discordbot-mdn_main_1 ... done
-
main_1
db_1
コンテナが起動していることを確認。$ docker ps CONTAINER ID IMAGE ... NAMES aaaaaaaaaaaa discordbot-mdn_main ... discordbot-mdn_main_1 bbbbbbbbbbbb postgres:14.5-alpine3.16 ... discordbot-mdn_db_1
-
コンテナのログを確認。
main_1
側のログへHello, World!
と表示されていれば OK 。$ docker-compose logs -f main_1 | ==================================== main_1 | discordbot-mdn main_1 | ==================================== main_1 | 2022-11-08 21:55:43.408075 main_1 | python 3.10.6 main_1 | discord.py 2.0.1 main_1 | 2022-11-08 21:55:43,409 [ INFO ] Bot を起動 ... main_1 | 2022-11-08 21:55:47,198 [ INFO ] Bot ログイン後の処理を完了 main_1 | 2022-11-08 21:55:47,198 [ INFO ] Hello, World!
-
Bot を招待したサーバーで実行確認。
参考: 📙お仕事内容ガイドブック
- Rapptz/discord.py
Copyright (c) 2015-present Rapptz
License: https://github.com/Rapptz/discord.py/blob/master/LICENSE - zomysan/alkana.py
License: https://github.com/zomysan/alkana.py/blob/master/LICENSE - Opus
License: https://opus-codec.org/license/ - psycopg2-binary
License: https://www.psycopg.org/docs/license.html - emptypage/open_jtalk:22.04-1.11
Copyright © 2020 Masaaki Shibata
License: https://bitbucket.org/emptypage/open_jtalk-docker/src/master/LICENSE - postgres:14.5-alpine3.16
License: https://www.postgresql.org/about/licence/
GNU General Public License v2.0
- discord.py へようこそ。
- Pythonで実用Discord Bot(discordpy解説) - Qiita
- DiscordBot開発実践入門 - cod-sushi - BOOTH
- DiscordBot運営実践入門 - cod-sushi - BOOTH
- psycopg2 メモ - Qiita
- Pythonのデフォルト引数で[]とか{}を使うべきではないという話 | Cosnomi Blog
- Logging HOWTO — Python 3.11.0b5 ドキュメント
- 社内のDockerfileのベストプラクティスを公開します│FORCIA CUBE│フォルシア株式会社
- Dockerイメージのレイヤの考え方とイメージの軽量化について - ネットワークエンジニアを目指して
- docker-composeでサービス運用しているなら設定しておきたいログローテート - Qiita
- 【Docker】PostgreSQLの起動時に初期データをセットアップ | 素人エンジニアの苦悩
- postgresql - Error when running psql command in /docker-entrypoint-initdb.d/db_init.sh (psql: could not connect to server: Connection refused) - Stack Overflow
- Postgres公式Dockerイメージのパスワードの扱いについて
しばたまさあきさん、捕食域の皆さんに相談やテストなどでご協力いただきました。
ありがとうございました!