Compare commits
2 commits
e65f6024d3
...
ee4061d10b
Author | SHA1 | Date | |
---|---|---|---|
ee4061d10b | |||
d643e6d1ba |
2 changed files with 72 additions and 4 deletions
57
dislocker.py
57
dislocker.py
|
@ -898,6 +898,31 @@ class DL():
|
|||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
|
||||
def pc_unregister(self, **kwargs):
|
||||
try:
|
||||
cursor = self.db.cursor()
|
||||
|
||||
if 'pc_number' in kwargs:
|
||||
pc_number = int(kwargs["pc_number"])
|
||||
cursor.execute("SELECT * FROM pc_list WHERE pc_number = %s", (pc_number,))
|
||||
pc_list = cursor.fetchall()
|
||||
if pc_list:
|
||||
cursor.execute("DELETE FROM pc_list WHERE pc_number = %s", (pc_number,))
|
||||
self.db.commit()
|
||||
return {"result": 0, "about": "ok"}
|
||||
else:
|
||||
return {"result": 1, "about": "not_exists"}
|
||||
else:
|
||||
return {"result": 1, "about": "syntax_error"}
|
||||
|
||||
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()
|
||||
|
||||
|
||||
class ReasonModal(discord.ui.Modal):
|
||||
|
@ -1081,6 +1106,14 @@ async def send_log(**kwargs):
|
|||
log_embed = discord.Embed(title=f":pencil: PC {pc_number} 番 | PCのニックネーム変更通知", description=f"<@{discord_user_id}> さんによってPCのニックネームが変更されました。\nボタンに変更を適用する場合は、再度 /init コマンドでボタンを送信して下さい。\n古いボタンを削除することをお忘れなく!", color=0x1343EB)
|
||||
log_embed.add_field(name="ニックネーム", value=alt_name)
|
||||
|
||||
elif mode == "pcunreg":
|
||||
alt_name = str(kwargs.get("alt_name"))
|
||||
if alt_name == None:
|
||||
log_embed = discord.Embed(title=f":x: PC {pc_number} 番 | PCの登録解除通知", description=f"<@{discord_user_id}> さんによってPCの登録が解除されました。", color=0xE512EB)
|
||||
else:
|
||||
log_embed = discord.Embed(title=f":x: PC {pc_number} 番 | PCの登録解除通知", description=f"<@{discord_user_id}> さんによってPCの登録が解除されました。", color=0xE512EB)
|
||||
log_embed.add_field(name="ニックネーム", value=alt_name)
|
||||
|
||||
await client.get_channel(dislocker.server_config["bot"]["log_channel_id"]).send(embed=log_embed)
|
||||
|
||||
return {"result": 0, "about": "ok"}
|
||||
|
@ -1630,6 +1663,30 @@ async def pcnickname(interaction: discord.Interaction, pc_number: int, nickname:
|
|||
|
||||
await interaction.response.send_message(embed=result_embed, ephemeral=True)
|
||||
|
||||
@tree.command(name="pcunreg", description="PCの登録を解除します。")
|
||||
@discord.app_commands.default_permissions(administrator=True)
|
||||
async def pcunreg(interaction: discord.Interaction, pc_number:int):
|
||||
if interaction.guild_id in dislocker.server_config["bot"]["server_id"] or interaction.user.id in dislocker.server_config["bot"]["admin_user_id"]:
|
||||
pc_dict = dislocker.get_pc_list()['output_dict'].get(pc_number)
|
||||
if pc_dict == None:
|
||||
result_embed = discord.Embed(title=":x: 操作に失敗しました。", description=f'指定されたPC番号には登録されていません。', color=0xC91111)
|
||||
await interaction.response.send_message(embed=result_embed, ephemeral=True)
|
||||
else:
|
||||
nickname = pc_dict['alt_name']
|
||||
pc_unregister = dislocker.pc_unregister(pc_number=pc_number)
|
||||
if pc_unregister["result"] == 0:
|
||||
if nickname == None:
|
||||
result_embed = discord.Embed(title=":white_check_mark: 操作が完了しました。", description=f'PC {str(pc_number)} 番 の登録は解除されました。', color=0x56FF01)
|
||||
else:
|
||||
result_embed = discord.Embed(title=":white_check_mark: 操作が完了しました。", description=f'PC {str(pc_number)} 番 | {str(nickname)}の登録は解除されました。', color=0x56FF01)
|
||||
|
||||
await send_log(mode="pcunreg", pc_number=pc_number, discord_user_id=interaction.user.id, alt_name=nickname)
|
||||
|
||||
else:
|
||||
result_embed = discord.Embed(title=":x: 操作に失敗しました。", description=f'サーバーでエラーが発生しています。登録は解除されません。', color=0xC91111)
|
||||
result_embed.add_field(name=f"{pc_unregister['output_dict']['error_class_name']}", value=f"{pc_unregister['output_dict']['error_args']}")
|
||||
|
||||
await interaction.response.send_message(embed=result_embed, ephemeral=True)
|
||||
|
||||
if dislocker.init_result == "ok":
|
||||
print("Botを起動します...")
|
||||
|
|
|
@ -307,18 +307,29 @@ class Auth():
|
|||
cursor.execute("SELECT pc_uuid FROM pc_list WHERE pc_number = %s", (pc_number,))
|
||||
pc_record = cursor.fetchall()
|
||||
pc_record_uuid = pc_record[0][0]
|
||||
if pc_record_uuid == None:
|
||||
cursor.execute("SELECT pc_number FROM pc_list WHERE pc_number = %s", (pc_number,))
|
||||
pc_record = cursor.fetchall()
|
||||
pc_record_number = pc_record[0][0]
|
||||
if pc_record_number == None:
|
||||
pc_token = self.token_generate(36)
|
||||
master_password = self.master_password_generate(16)
|
||||
master_password_hash = self.hash_genarate(master_password)
|
||||
cursor.execute("UPDATE pc_list SET pc_uuid = %s, pc_token = %s, master_password = %s WHERE pc_number = %s", (pc_uuid, pc_token, master_password, pc_number))
|
||||
cursor.execute("INSERT INTO pc_list (pc_number, pc_uuid, pc_token, master_password) VALUES (%s, %s, %s, %s)", (pc_number, pc_uuid, pc_token, master_password))
|
||||
self.db.commit()
|
||||
return {"result": 0, "about": "ok", "output_dict": {"pc_token": pc_token, "master_password": master_password, "master_password_hash": master_password_hash}}
|
||||
else:
|
||||
return {"result": 1, "about": "exist"}
|
||||
if pc_record_uuid == None:
|
||||
pc_token = self.token_generate(36)
|
||||
master_password = self.master_password_generate(16)
|
||||
master_password_hash = self.hash_genarate(master_password)
|
||||
cursor.execute("UPDATE pc_list SET pc_uuid = %s, pc_token = %s, master_password = %s WHERE pc_number = %s", (pc_uuid, pc_token, master_password, pc_number))
|
||||
self.db.commit()
|
||||
return {"result": 0, "about": "ok", "output_dict": {"pc_token": pc_token, "master_password": master_password, "master_password_hash": master_password_hash}}
|
||||
else:
|
||||
return {"result": 1, "about": "exist"}
|
||||
|
||||
except Exception as error:
|
||||
print("停止処理中にエラーが発生しました。\nエラー内容")
|
||||
print("PCの登録処理中にエラーが発生しました。\nエラー内容")
|
||||
print(str(error.__class__.__name__))
|
||||
print(str(error.args))
|
||||
print(str(error))
|
||||
|
|
Loading…
Reference in a new issue