From c08afa08c3cd52d8cd26135e4f25450ca1e47f65 Mon Sep 17 00:00:00 2001 From: suti7yk5032 Date: Sun, 8 Sep 2024 15:14:06 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9B=AE=E7=9A=84=E3=81=AE?= =?UTF-8?q?=E3=83=97=E3=83=AA=E3=82=BB=E3=83=83=E3=83=88=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dislocker.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/dislocker.py b/dislocker.py index 03a3cbc..7e98f04 100644 --- a/dislocker.py +++ b/dislocker.py @@ -77,6 +77,7 @@ class DL(): cursor = self.db.cursor() self.pc_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + self.preset_games = self.server_config["bot"]["preset_games"] cursor.execute("SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'club_member')") find_club_member_table = cursor.fetchall() @@ -625,6 +626,9 @@ class Bot(discord.Client): pc_number = custom_id_split[1] device_number = custom_id_split[2] reason_register_view = View(timeout=15) + for i in dislocker.preset_games: + reason_quick_button = reason_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i)}", custom_id=f"reasonregister_{str(pc_number)}_{str(device_number)}_quick_{str(i)}") + reason_register_view.add_item(reason_quick_button) reason_button = discord.ui.Button(style=discord.ButtonStyle.primary, label="使用目的を入力する", custom_id=f"reasonregister_{str(pc_number)}_{str(device_number)}") reason_register_view.add_item(reason_button) @@ -633,8 +637,31 @@ class Bot(discord.Client): elif custom_id_split[0] == "reasonregister": pc_number = custom_id_split[1] device_number = custom_id_split[2] - reason_input_form = Reason(title="Dislocker | 登録", pc_number=str(pc_number), device_number=str(device_number)) - await interaction.response.send_modal(reason_input_form) + + if len(custom_id_split) >= 4: + if custom_id_split[3] == "quick": + reason = custom_id_split[4] + device_number = custom_id_split[2] + register = bot.register(user_id=interaction.user.id, name=interaction.user.name, display_name=interaction.user.display_name, pc_number=pc_number, device_number=device_number, detail=reason) + print(register["result"]) + + if register["result"] == "ok": + await interaction.response.send_message(f":white_check_mark: 使用が開始されました。\n>>> # パスワード | {register["password"]}\n## PC番号 | {pc_number}\n## デバイス番号 | {device_number}\n## 使用目的 | {reason}", ephemeral=True) + await bot.get_channel(dislocker.server_config["bot"]["log_channel_id"]).send(f':white_check_mark: {register["name"]} さんがPC {pc_number} の使用を開始しました。') + elif register["result"] == "pc_already_in_use_by_you": + await interaction.response.send_message(f"# :exploding_head: あなたはPCをもう使用されているようです。\n使用状態を解除するには 終了ボタン で使用終了をお知らせください。\n>>> # PC番号 | {register["pc_number"]}\n# デバイス番号 | {register["device_number"]}\n# 使用開始時刻 | {register["start_time"]}\n# 使用目的 | {register["detail"]}", ephemeral=True) + elif register["result"] == "pc_already_in_use_by_other": + await interaction.response.send_message(f"# :man_gesturing_no: そのPCは他のメンバーによって使用されています。\n別のPC番号を指定して、再度お試しください。", ephemeral=True) + elif register["result"] == "user_data_not_found": + await interaction.response.send_message("# :dizzy_face: ユーザーとして登録されていないようです。\n最初にサーバーで登録を行ってください。", ephemeral=True) + else: + await interaction.response.send_message("# :skull_crossbones: 登録できませんでした。\n内部エラーが発生しています。", ephemeral=True) + else: + reason_input_form = Reason(title="Dislocker | 登録", pc_number=str(pc_number), device_number=str(device_number)) + await interaction.response.send_modal(reason_input_form) + else: + reason_input_form = Reason(title="Dislocker | 登録", pc_number=str(pc_number), device_number=str(device_number)) + await interaction.response.send_modal(reason_input_form) elif custom_id_split[0] == "stop": print("STOP running")