diff --git a/jarvis/cogs/admin/ban.py b/jarvis/cogs/admin/ban.py index f1cd3a8..4db8461 100644 --- a/jarvis/cogs/admin/ban.py +++ b/jarvis/cogs/admin/ban.py @@ -1,8 +1,7 @@ """J.A.R.V.I.S. BanCog.""" import re -from datetime import datetime, timedelta -from dis_snek import InteractionContext, Permissions, Snake +from dis_snek import InteractionContext, Permissions, Scale from dis_snek.client.utils.misc_utils import find, find_all from dis_snek.ext.paginators import Paginator from dis_snek.models.discord.embed import EmbedField @@ -18,16 +17,12 @@ from jarvis_core.db import q from jarvis_core.db.models import Ban, Unban from jarvis.utils import build_embed -from jarvis.utils.cachecog import CacheCog from jarvis.utils.permissions import admin_or_permissions -class BanCog(CacheCog): +class BanCog(Scale): """J.A.R.V.I.S. BanCog.""" - def __init__(self, bot: Snake): - super().__init__(bot) - async def discord_apply_ban( self, ctx: InteractionContext, @@ -40,7 +35,7 @@ class BanCog(CacheCog): ) -> None: """Apply a Discord ban.""" await ctx.guild.ban(user, reason=reason) - _ = Ban( + b = Ban( user=user.id, username=user.username, discrim=user.discriminator, @@ -50,7 +45,8 @@ class BanCog(CacheCog): type=mtype, duration=duration, active=active, - ).save() + ) + await b.commit() embed = build_embed( title="User Banned", @@ -70,14 +66,15 @@ class BanCog(CacheCog): async def discord_apply_unban(self, ctx: InteractionContext, user: User, reason: str) -> None: """Apply a Discord unban.""" await ctx.guild.unban(user, reason=reason) - _ = Unban( + u = Unban( user=user.id, username=user.username, discrim=user.discriminator, guild=ctx.guild.id, admin=ctx.author.id, reason=reason, - ).save() + ) + await u.commit() embed = build_embed( title="User Unbanned", @@ -319,10 +316,10 @@ class BanCog(CacheCog): search["active"] = True if btype > 0: search["type"] = types[btype] - bans = Ban.objects(**search).order_by("-created_at") + bans = Ban.find(search).sort([("created_at", -1)]) db_bans = [] fields = [] - for ban in bans: + async for ban in bans: if not ban.username: user = await self.bot.fetch_user(ban.user) ban.username = user.username if user else "[deleted user]" @@ -379,14 +376,4 @@ class BanCog(CacheCog): paginator = Paginator.create_from_embeds(self.bot, *pages, timeout=300) - self.cache[hash(paginator)] = { - "guild": ctx.guild.id, - "user": ctx.author.id, - "timeout": datetime.utcnow() + timedelta(minutes=5), - "command": ctx.subcommand_name, - "btype": btype, - "active": active, - "paginator": paginator, - } - await paginator.send(ctx)