Update ban

This commit is contained in:
Zeva Rose 2022-02-23 11:50:47 -07:00
parent 2a84d50c65
commit fa33a79de3

View file

@ -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)