feat(bot): ✨ Keep track of who unbanned a user.
This commit is contained in:
+8
-2
@@ -246,16 +246,22 @@ class Payphone(commands.AutoShardedBot):
|
|||||||
|
|
||||||
@transactions.atomic()
|
@transactions.atomic()
|
||||||
async def unban(
|
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:
|
) -> None:
|
||||||
"""Unbans a user from Payphone.
|
"""Unbans a user from Payphone.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
user (discord.User | discord.Member | models.User | int): The user to unban or their
|
user (discord.User | discord.Member | models.User | int): The user to unban or their
|
||||||
ID.
|
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
|
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
|
key = constants.BAN_TEMPLATE % user_id
|
||||||
|
|
||||||
await models.Ban.filter(
|
await models.Ban.filter(
|
||||||
@@ -265,7 +271,7 @@ class Payphone(commands.AutoShardedBot):
|
|||||||
join_type="OR",
|
join_type="OR",
|
||||||
),
|
),
|
||||||
user_id=user_id,
|
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)
|
await self.redis.set(key, "0", ex=300)
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ class Mods(base.Cog):
|
|||||||
|
|
||||||
user_id = user
|
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()
|
profile = await models.Profile.filter(user_id=user_id).limit(1).first()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user