Closed supleiades closed 3 years ago
アイコンが変わった時、名前が変わった場合の処理は厳しいと思うので、ユーザーが自主的に替えたい場合に変えられるような何かを用意すると良さそうですね
それとBotによってチャンネルに誘導する手間を省いて、サーバー参加時にDMを直接送る方が良いと思いました。
自己紹介を見る時に定型文が一番下にあると、新しく自己紹介が追加されているか分かりづらくなる為です。
https://github.com/iceE-1591/discord.CodeWarehouse/commit/48a073886747747239bad6725641afa75addf16c
Botによる質問の数を1つ増やしました(性別) 回答によってEmbedのカラーが変わるような処理を追加しました
ギルドにテストユーザーを参加させてみて、 出力されたエラー
--------------------
起動中...
BOT NAME : プールの監視員
BOT ID : 618077392686153742
--------------------
Ignoring exception in on_ready
Traceback (most recent call last):
File "/home/centos/work/discord.CodeWarehouse/python/venv/lib/python3.8/site-packages/discord/client.py", line 333, in _run_event
await coro(*args, **kwargs)
File "/home/centos/work/discord.CodeWarehouse/python/Cogs/Managements/selfIntroduction.py", line 18, in on_ready
self.INTRODUCTION_CHANNEL = self.GUILD.get_channel(self.INTRODUCTION_CHANNEL_ID)
AttributeError: 'NoneType' object has no attribute 'get_channel'
Ignoring exception in on_member_join
Traceback (most recent call last):
File "/home/centos/work/discord.CodeWarehouse/python/venv/lib/python3.8/site-packages/discord/client.py", line 333, in _run_event
await coro(*args, **kwargs)
File "/home/centos/work/discord.CodeWarehouse/python/Cogs/Managements/selfIntroduction.py", line 27, in on_member_join
await self.DEBUG_GUILD.create_text_channel(str(member.id))
AttributeError: 'Self_Introduction' object has no attribute 'DEBUG_GUILD'
上のエラーデバッグサーバーに招待したプールの監視員BOTに権限付与して解決
https://github.com/mo9mo9study/discord.CodeWarehouse/blob/master/node/autoCreateTimes.js この処理を.pyにリプレイスしつつ、現在の自己紹介の処理と連携させる
# 特定チャンネル以外のmessage除外
# ボット除外
# embed以外除外
# 自己紹介チャンネルに投稿されたembedからfooterからユーザーIDを取得
# mo9mo9ギルド内のtimesという名前のチャンネルを全て取得
# 既にtimesが存在しているかどうか判定
# timesの総数を知らせる機能、(+times_{A-Z,数字}、times_{その他}の各チャンネル総数)
# timesチャンネルを作成(topicにembedから取得したユーザーIDを挿入)
# チャンネルtopicからユーザーIDを取得
# ユーザーオブジェクト取得
# チュートリアル送信
# 1〜5のリアクションを送信したメッセージに付与
https://github.com/mo9mo9study/discord.CodeWarehouse/blob/master/node/activetimes_move.js この処理をtimes作成の処理と一緒のファイルに記述
# チャンネル名がtimes_で始まる場所でのやりとりのみ
# カテゴリー名がactive_timesに配属しているチャンネルでのやりとりは除外
# times内でやりとりが行われるとカテゴリー名Active_timesに移動する
## 定期実行
# 🔥ACTIVE_timesから全てのチャンネル(times)を取得
# 「/^times_[a-zA-Z0-9].*$/」にマッチするtimes_英数字のチャンネルとその他にチャンネルの二つのリストにそれぞれを格納
# times_英数字をカテゴリー名「🐣分報チャンネル(A-Z,数字)」に移動する
# times_その他をカテゴリー名「🐣分報チャンネル(A-Z,数字)」に移動する
## コマンド(times_reset)
# 目的:timesが異なった場所に移動してしまっている場合にのみ実行して正しいカテゴリーに移動させる(もしもの時用)
# 定期実行とは異なり、全てのチャンネルからIDを取得して必要なカテゴリーに移動
通知先チャンネル: 801060150433153054 メンション宛ロール: 801060326627999774
現状
目的
issue起票時に思いついてる処理の流れ
その他、関連処理