PC,デバイスの登録ボタンがdbと連動するように

This commit is contained in:
suti7yk5032 2024-09-29 00:08:56 +09:00
parent ab96092b39
commit 5f17506447

View file

@ -804,11 +804,71 @@ class DL():
else:
cursor.execute("SELECT * FROM pc_list ORDER BY pc_number")
pc_list = cursor.fetchall()
pc_list = {}
pc_list_base = {}
for i in pc_list:
pc_list[i[0]] = {"pc_number": i[0], "using_member_id": i[1], "master_password": i[5], "detail": i[6], "alt_name": i[7]}
pc_list_base[i[0]] = {"pc_number": i[0], "using_member_id": i[1], "master_password": i[5], "detail": i[6], "alt_name": i[7]}
return {"result": 0, "about": "ok", "output_dict": pc_list}
return {"result": 0, "about": "ok", "output_dict": pc_list_base}
except Exception as error:
self.log(title=f"[ERROR] PCリストの取得中にエラーが発生しました。 {str(error.__class__.__name__)}", message=str(error.args), flag=1)
return {"result": 1, "about": "error", "output_dict": {"error_class_name": str(error.__class__.__name__), "error_args": str(error.args)}}
finally:
if cursor:
cursor.close()
def get_keyboard_list(self, **kwargs):
try:
cursor = self.db.cursor()
if "keyboard_number" in kwargs:
keyboard_number = int(kwargs["keyboard_number"])
cursor.execute("SELECT * FROM keyboard_list WHERE keyboard_number = %s", (keyboard_number,))
keyboard_list = cursor.fetchall()
return {"result": 0, "about": "ok", "output_dict": {keyboard_number: {"keyboard_number": keyboard_list[0][0], "using_member_id": keyboard_list[0][1], "device_instance_path": keyboard_list[0][2], "device_name": keyboard_list[0][3], "detail": keyboard_list[0][4], "alt_name": keyboard_list[0][5]}}}
else:
cursor.execute("SELECT * FROM keyboard_list ORDER BY keyboard_number")
keyboard_list = cursor.fetchall()
keyboard_list_base = {}
for i in keyboard_list:
if i['keyboard_number'] == 0:
pass
else:
keyboard_list_base[i[0]] = {"keyboard_number": i[0], "using_member_id": i[1], "device_instance_path": i[2], "device_name": i[3], "detail": i[4], "alt_name": i[5]}
return {"result": 0, "about": "ok", "output_dict": keyboard_list_base}
except Exception as error:
self.log(title=f"[ERROR] PCリストの取得中にエラーが発生しました。 {str(error.__class__.__name__)}", message=str(error.args), flag=1)
return {"result": 1, "about": "error", "output_dict": {"error_class_name": str(error.__class__.__name__), "error_args": str(error.args)}}
finally:
if cursor:
cursor.close()
def get_mouse_list(self, **kwargs):
try:
cursor = self.db.cursor()
if "mouse_number" in kwargs:
mouse_number = int(kwargs["mouse_number"])
cursor.execute("SELECT * FROM mouse_list WHERE mouse_number = %s", (mouse_number,))
mouse_list = cursor.fetchall()
return {"result": 0, "about": "ok", "output_dict": {mouse_number: {"mouse_number": mouse_list[0][0], "using_member_id": mouse_list[0][1], "device_instance_path": mouse_list[0][2], "device_name": mouse_list[0][3], "detail": mouse_list[0][4], "alt_name": mouse_list[0][5]}}}
else:
cursor.execute("SELECT * FROM mouse_list ORDER BY mouse_number")
mouse_list = cursor.fetchall()
mouse_list_base = {}
for i in mouse_list:
if i['mouse_number'] == 0:
pass
else:
mouse_list_base[i[0]] = {"keyboard_number": i[0], "using_member_id": i[1], "device_instance_path": i[2], "device_name": i[3], "detail": i[4], "alt_name": i[5]}
return {"result": 0, "about": "ok", "output_dict": mouse_list_base}
except Exception as error:
self.log(title=f"[ERROR] PCリストの取得中にエラーが発生しました。 {str(error.__class__.__name__)}", message=str(error.args), flag=1)
@ -1113,12 +1173,15 @@ async def on_button(interaction: discord.Interaction):
if custom_id_split[0] == "pcregister":
keyboard_register_view = discord.ui.View(timeout=15)
pc_number = custom_id_split[1]
for i in dislocker.keyboard_list:
if i == 0:
pass
keyboard_list = dislocker.get_keyboard_list()
for i in keyboard_list["output_dict"].keys():
if i['alt_name'] == None:
keyboard_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i['keyboard_number'])}", custom_id=f"keyboardregister_{str(pc_number)}_{str(i['keyboard_number'])}")
else:
keyboard_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i)}", custom_id=f"keyboardregister_{str(pc_number)}_{str(i)}")
keyboard_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i['keyboard_number'])} 番 | ({i['alt_name']})", custom_id=f"keyboardregister_{str(pc_number)}_{str(i['keyboard_number'])}")
keyboard_register_view.add_item(keyboard_register_button)
keyboard_not_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label="キーボードは自前", custom_id=f"keyboardregister_{str(pc_number)}_own")
keyboard_register_view.add_item(keyboard_not_register_button)
@ -1128,16 +1191,19 @@ async def on_button(interaction: discord.Interaction):
mouse_register_view = discord.ui.View(timeout=15)
pc_number = custom_id_split[1]
keyboard_number = custom_id_split[2]
mouse_list = dislocker.get_mouse_list()
if keyboard_number == "own":
keyboard_number_show = "自前"
else:
keyboard_number_show = keyboard_number
for i in dislocker.mouse_list:
if i == 0:
pass
for i in mouse_list["output_dict"].keys():
if i['alt_name'] == None:
mouse_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i['mouse_number'])}", custom_id=f"mouseregister_{str(pc_number)}_{str(keyboard_number)}_{str(i['mouse_number'])}")
else:
mouse_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i)}", custom_id=f"mouseregister_{str(pc_number)}_{str(keyboard_number)}_{str(i)}")
mouse_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i['mouse_number'])} 番 | ({i['alt_name']})", custom_id=f"mouseregister_{str(pc_number)}_{str(keyboard_number)}_{str(i['mouse_number'])}")
mouse_register_view.add_item(mouse_register_button)
mouse_not_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label="マウスは自前", custom_id=f"mouseregister_{str(pc_number)}_{str(keyboard_number)}_own")
mouse_register_view.add_item(mouse_not_register_button)
@ -1435,6 +1501,8 @@ async def report(interaction: discord.Interaction):
@discord.app_commands.default_permissions(administrator=True)
async def button_init(interaction: discord.Interaction, text_channel: discord.TextChannel):
if interaction.guild_id in dislocker.server_config["bot"]["server_id"] or interaction.user.id in dislocker.server_config["bot"]["admin_user_id"]:
pc_list = dislocker.get_pc_list()
user_register_button_view = discord.ui.View(timeout=None)
user_register_button = discord.ui.Button(style=discord.ButtonStyle.green, label="ユーザー登録", custom_id="user_register")
user_register_button_view.add_item(user_register_button)
@ -1448,8 +1516,11 @@ async def button_init(interaction: discord.Interaction, text_channel: discord.Te
await client.get_channel(text_channel.id).send(f'# :index_pointing_at_the_viewer: 使用を停止しますか?', view=stop_button_view)
pc_button_view = discord.ui.View(timeout=None)
for i in dislocker.pc_list:
pc_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i)}", custom_id=f"pcregister_{str(i)}")
for i in pc_list["output_dict"].keys():
if i['alt_name'] == None:
pc_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i['pc_number'])}", custom_id=f"pcregister_{str(i['pc_number'])}")
else:
pc_register_button = discord.ui.Button(style=discord.ButtonStyle.primary, label=f"{str(i['pc_number'])} 番 | ({i['alt_name']})", custom_id=f"pcregister_{str(i['pc_number'])}")
pc_button_view.add_item(pc_register_button)
await client.get_channel(text_channel.id).send(f'# :index_pointing_at_the_viewer: 使いたいPCの番号を選んでください', view=pc_button_view)