From 0e90f7b320a7c00676e3e1bd7ba29a13258c78bd Mon Sep 17 00:00:00 2001 From: "Nyeki.py" <84998222+Nekidev@users.noreply.github.com> Date: Sun, 27 Oct 2024 16:55:42 -0300 Subject: [PATCH] feat(bot): :sparkles: Keep track of who unbanned a user. --- payphone/bot.py | 10 ++++++++-- payphone/cogs/mods/cog.py | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/payphone/bot.py b/payphone/bot.py index 99388e9..836a8b3 100644 --- a/payphone/bot.py +++ b/payphone/bot.py @@ -246,16 +246,22 @@ class Payphone(commands.AutoShardedBot): @transactions.atomic() async def unban( - self, user: discord.User | discord.Member | models.User | int + self, + user: discord.User | discord.Member | models.User | int, + unbanned_by: discord.User | discord.Member | models.User | int | None = None, ) -> None: """Unbans a user from Payphone. Args: user (discord.User | discord.Member | models.User | int): The user to unban or their ID. + unbanned_by (discord.User | discord.Member | models.User | int | None, optional): The + moderator who unbanned the user or their ID. """ user_id = user if isinstance(user, int) else user.id + unbanned_by_id = unbanned_by if isinstance(unbanned_by, int) else unbanned_by.id + key = constants.BAN_TEMPLATE % user_id await models.Ban.filter( @@ -265,7 +271,7 @@ class Payphone(commands.AutoShardedBot): join_type="OR", ), user_id=user_id, - ).update(expires_at=datetime.now(timezone.utc)) + ).update(expires_at=datetime.now(timezone.utc), unbanned_by_id=unbanned_by_id) await self.redis.set(key, "0", ex=300) diff --git a/payphone/cogs/mods/cog.py b/payphone/cogs/mods/cog.py index 75415fd..02727ee 100644 --- a/payphone/cogs/mods/cog.py +++ b/payphone/cogs/mods/cog.py @@ -100,7 +100,7 @@ class Mods(base.Cog): user_id = user - await self.bot.unban(user_id) + await self.bot.unban(user_id, ctx.author) profile = await models.Profile.filter(user_id=user_id).limit(1).first()