From 696165239f17b6366756476c1f2310cf5fa416cf Mon Sep 17 00:00:00 2001 From: SeaswimmerTheFsh Date: Thu, 5 Oct 2023 16:26:45 -0400 Subject: [PATCH] feat(moderation): expiry_handler now messages users who are unbanned (or attempts to) --- moderation/moderation.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/moderation/moderation.py b/moderation/moderation.py index 6febd8a..9838d11 100644 --- a/moderation/moderation.py +++ b/moderation/moderation.py @@ -393,7 +393,7 @@ class Moderation(commands.Cog): embed.description = f"**Type:** {str.title(case['moderation_type'])}\n**Target:** {target_name} ({target.id})\n**Moderator:** {moderator_name} ({moderator.id})\n**Resolved:** {bool(case['resolved'])}\n**Timestamp:** | " if case['duration'] != 'NULL': td = timedelta(**{unit: int(val) for unit, val in zip(["hours", "minutes", "seconds"], case["duration"].split(":"))}) - embed.description = embed.description + f"\n**Duration:** {humanize.precisedelta(td)}\n**Expired:** {bool(case['expired'])}" + embed.description = embed.description + f"\n**Duration:** {humanize.precisedelta(td)} | \n**Expired:** {bool(case['expired'])}" embed.add_field(name='Reason', value=f"```{case['reason']}```", inline=False) if case['resolved'] == 1: embed.add_field(name='Resolve Reason', value=f"```{case['resolve_reason']}```", inline=False) @@ -417,8 +417,13 @@ class Moderation(commands.Cog): target_ids = [row[0] for row in result] moderation_ids = [row[1] for row in result] for target_id, moderation_id in zip(target_ids, moderation_ids): - user = await self.bot.fetch_user(target_id) + user: discord.User = await self.bot.fetch_user(target_id) await guild.unban(user, reason=f"Automatic unban from case #{moderation_id}") + embed = await self.embed_factory('message', guild, f'Automatic unban from case #{moderation_id}', 'unbanned') + try: + await user.send(embed=embed) + except discord.errors.HTTPException: + pass expiry_query = f"UPDATE `{db}`.`moderation_{guild.id}` SET expired = 1 WHERE (end_timestamp != 0 AND end_timestamp <= %s AND expired = 0) OR (expired = 0 AND resolved = 1)" cursor.execute(expiry_query, (time.time(),)) database.commit()