feat(moderation): improving resolve command
Some checks failed
Pylint / Pylint (push) Failing after 1m13s
Some checks failed
Pylint / Pylint (push) Failing after 1m13s
This commit is contained in:
parent
7c88f98a28
commit
4960d40ac9
1 changed files with 33 additions and 1 deletions
|
@ -123,6 +123,22 @@ class Moderation(commands.Cog):
|
||||||
logging.fatal("Unable to access the MySQL database!\nError:\n%s", e.msg)
|
logging.fatal("Unable to access the MySQL database!\nError:\n%s", e.msg)
|
||||||
raise ConnectionRefusedError(f"Unable to access the MySQL Database!\n{e.msg}") from e
|
raise ConnectionRefusedError(f"Unable to access the MySQL Database!\n{e.msg}") from e
|
||||||
|
|
||||||
|
def generate_dict(self, result):
|
||||||
|
case: dict = {
|
||||||
|
"moderation_id": result[0],
|
||||||
|
"timestamp": result[1],
|
||||||
|
"moderation_type": result[2],
|
||||||
|
"target_id": result[3],
|
||||||
|
"moderator_id": result[4],
|
||||||
|
"duration": result[5],
|
||||||
|
"end_timestamp": result[6],
|
||||||
|
"reason": result[7],
|
||||||
|
"resolved": result[8],
|
||||||
|
"resolve_reason": result[9],
|
||||||
|
"expired": result[10]
|
||||||
|
}
|
||||||
|
return case
|
||||||
|
|
||||||
async def create_guild_table(self, guild: discord.Guild):
|
async def create_guild_table(self, guild: discord.Guild):
|
||||||
database = await self.connect()
|
database = await self.connect()
|
||||||
cursor = database.cursor()
|
cursor = database.cursor()
|
||||||
|
@ -396,9 +412,25 @@ class Moderation(commands.Cog):
|
||||||
if result_2 is None:
|
if result_2 is None:
|
||||||
await interaction.response.send_message(content=f"This moderation has already been resolved!\nUse `/case {case_number}` for more information.", ephemeral=True)
|
await interaction.response.send_message(content=f"This moderation has already been resolved!\nUse `/case {case_number}` for more information.", ephemeral=True)
|
||||||
return
|
return
|
||||||
|
case = self.generate_dict(result_2)
|
||||||
if reason is None:
|
if reason is None:
|
||||||
reason = "No reason given."
|
reason = "No reason given."
|
||||||
resolve_query = f"UPDATE moderation_{interaction.guild.id} SET resolved = 1, resolve_reason = %s WHERE moderation_id = %s"
|
if case['moderation_type'] in ['mute', 'tempban']:
|
||||||
|
if case['moderation_type'] == 'mute':
|
||||||
|
try:
|
||||||
|
member = await interaction.guild.fetch_member(case['target_id'])
|
||||||
|
await member.timeout(None, reason=f"Case #{case_number} resolved by {interaction.user.id}")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
if case['moderation_type'] == 'tempban':
|
||||||
|
try:
|
||||||
|
user = await interaction.client.fetch_user(case['target_id'])
|
||||||
|
await interaction.guild.unban(user, reason=f"Case #{case_number} resolved by {interaction.user.id}")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
resolve_query = f"UPDATE moderation_{interaction.guild.id} SET resolved = 1, expired = 1, resolve_reason = %s WHERE moderation_id = %s"
|
||||||
|
else:
|
||||||
|
resolve_query = f"UPDATE moderation_{interaction.guild.id} SET resolved = 1, resolve_reason = %s WHERE moderation_id = %s"
|
||||||
cursor.execute(resolve_query, (reason, case_number))
|
cursor.execute(resolve_query, (reason, case_number))
|
||||||
await interaction.response.send_message(content=f"✅ Moderation #{case_number} resolved!")
|
await interaction.response.send_message(content=f"✅ Moderation #{case_number} resolved!")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue