diff options
| -rw-r--r-- | bot/cogs/clean.py | 36 | ||||
| -rw-r--r-- | bot/cogs/defcon.py | 16 | ||||
| -rw-r--r-- | bot/cogs/token_remover.py | 6 | ||||
| -rw-r--r-- | bot/cogs/verification.py | 4 | 
4 files changed, 36 insertions, 26 deletions
diff --git a/bot/cogs/clean.py b/bot/cogs/clean.py index efedc2dce..5644913b5 100644 --- a/bot/cogs/clean.py +++ b/bot/cogs/clean.py @@ -18,6 +18,19 @@ log = logging.getLogger(__name__)  class Clean: +    """ +    A cog that allows messages to be deleted in +    bulk, while applying various filters. + +    You can delete messages sent by a specific user, +    messages sent by bots, all messages, or messages +    that match a specific regular expression. + +    The deleted messages are saved and uploaded +    to the database via an API endpoint, and a URL is +    returned which can be used to view the messages +    in the Discord dark theme style. +    """      def __init__(self, bot: Bot):          self.bot = bot @@ -127,7 +140,7 @@ class Clean:              embed = Embed(                  color=Colour(Colours.soft_red),                  title=random.choice(NEGATIVE_REPLIES), -                description="Multiple simultaneous cleaning processes is not allowed." +                description="Please wait for the currently ongoing clean operation to complete."              )              await ctx.send(embed=embed)              return @@ -163,7 +176,7 @@ class Clean:              # If the message passes predicate, let's save it.              if predicate is None or predicate(message):                  author = f"{message.author.name}#{message.author.discriminator}" -                role = message.author.top_role.name +                role_id = message.author.top_role.id                  content = message.content                  embeds = [embed.to_dict() for embed in message.embeds] @@ -174,7 +187,7 @@ class Clean:                      "content": content,                      "author": author,                      "user_id": str(message.author.id), -                    "role": role.lower(), +                    "role_id": str(role_id),                      "timestamp": message.created_at.strftime("%D %H:%M"),                      "attachments": attachments,                      "embeds": embeds, @@ -205,23 +218,20 @@ class Clean:              return          # Build the embed and send it +        print(upload_log)          message = (              f"**{len(message_ids)}** messages deleted in <#{ctx.channel.id}> by **{ctx.author.name}**\n\n"              f"A log of the deleted messages can be found [here]({upload_log})."          ) -        embed = Embed( -            color=Colour(Colours.soft_red), -            description=message -        ) - -        embed.set_author( -            name=f"Bulk message delete", -            icon_url=Icons.message_bulk_delete +        await self.mod_log.send_log_message( +            icon_url=Icons.message_bulk_delete, +            colour=Colour(Colours.soft_red), +            title="Bulk message delete", +            text=message, +            channel_id=Channels.modlog,          ) -        await self.bot.get_channel(Channels.modlog).send(embed=embed) -      @group(invoke_without_command=True, name="clean", hidden=True)      @with_role(Roles.moderator, Roles.admin, Roles.owner)      async def clean_group(self, ctx: Context): diff --git a/bot/cogs/defcon.py b/bot/cogs/defcon.py index 8ca59b058..beb05ba46 100644 --- a/bot/cogs/defcon.py +++ b/bot/cogs/defcon.py @@ -36,7 +36,7 @@ class Defcon:          self.headers = {"X-API-KEY": Keys.site_api}      @property -    def modlog(self) -> ModLog: +    def mod_log(self) -> ModLog:          return self.bot.get_cog("ModLog")      async def on_ready(self): @@ -92,7 +92,7 @@ class Defcon:                  if not message_sent:                      message = f"{message}\n\nUnable to send rejection message via DM; they probably have DMs disabled." -                await self.modlog.send_log_message( +                await self.mod_log.send_log_message(                      Icons.defcon_denied, COLOUR_RED, "Entry denied",                      message, member.avatar_url_as(static_format="png")                  ) @@ -133,7 +133,7 @@ class Defcon:                  f"```py\n{e}\n```"              ) -            await self.modlog.send_log_message( +            await self.mod_log.send_log_message(                  Icons.defcon_enabled, COLOUR_GREEN, "DEFCON enabled",                  f"**Staffer:** {ctx.author.name}#{ctx.author.discriminator} (`{ctx.author.id}`)\n"                  f"**Days:** {self.days.days}\n\n" @@ -144,7 +144,7 @@ class Defcon:          else:              await ctx.send(f"{Emojis.defcon_enabled} DEFCON enabled.") -            await self.modlog.send_log_message( +            await self.mod_log.send_log_message(                  Icons.defcon_enabled, COLOUR_GREEN, "DEFCON enabled",                  f"**Staffer:** {ctx.author.name}#{ctx.author.discriminator} (`{ctx.author.id}`)\n"                  f"**Days:** {self.days.days}\n\n" @@ -176,7 +176,7 @@ class Defcon:                  f"```py\n{e}\n```"              ) -            await self.modlog.send_log_message( +            await self.mod_log.send_log_message(                  Icons.defcon_disabled, COLOUR_RED, "DEFCON disabled",                  f"**Staffer:** {ctx.author.name}#{ctx.author.discriminator} (`{ctx.author.id}`)\n"                  "**There was a problem updating the site** - This setting may be reverted when the bot is " @@ -186,7 +186,7 @@ class Defcon:          else:              await ctx.send(f"{Emojis.defcon_disabled} DEFCON disabled.") -            await self.modlog.send_log_message( +            await self.mod_log.send_log_message(                  Icons.defcon_disabled, COLOUR_RED, "DEFCON disabled",                  f"**Staffer:** {ctx.author.name}#{ctx.author.discriminator} (`{ctx.author.id}`)"              ) @@ -233,7 +233,7 @@ class Defcon:                  f"```py\n{e}\n```"              ) -            await self.modlog.send_log_message( +            await self.mod_log.send_log_message(                  Icons.defcon_updated, Colour.blurple(), "DEFCON updated",                  f"**Staffer:** {ctx.author.name}#{ctx.author.discriminator} (`{ctx.author.id}`)\n"                  f"**Days:** {self.days.days}\n\n" @@ -246,7 +246,7 @@ class Defcon:                  f"{Emojis.defcon_updated} DEFCON days updated; accounts must be {days} days old to join to the server"              ) -            await self.modlog.send_log_message( +            await self.mod_log.send_log_message(                  Icons.defcon_updated, Colour.blurple(), "DEFCON updated",                  f"**Staffer:** {ctx.author.name}#{ctx.author.discriminator} (`{ctx.author.id}`)\n"                  f"**Days:** {self.days.days}" diff --git a/bot/cogs/token_remover.py b/bot/cogs/token_remover.py index c8621118b..74bc0d9b2 100644 --- a/bot/cogs/token_remover.py +++ b/bot/cogs/token_remover.py @@ -40,10 +40,10 @@ class TokenRemover:      def __init__(self, bot: Bot):          self.bot = bot -        self.modlog = None +        self.mod_log = None      async def on_ready(self): -        self.modlog = self.bot.get_channel(Channels.modlog) +        self.mod_log = self.bot.get_channel(Channels.modlog)      async def on_message(self, msg: Message):          if msg.author.bot: @@ -61,7 +61,7 @@ class TokenRemover:          if self.is_valid_user_id(user_id) and self.is_valid_timestamp(creation_timestamp):              await msg.delete()              await msg.channel.send(DELETION_MESSAGE_TEMPLATE.format(mention=msg.author.mention)) -            await self.modlog.send( +            await self.mod_log.send(                  ":key2::mute: censored a seemingly valid token sent by "                  f"{msg.author} (`{msg.author.id}`) in {msg.channel.mention}, token was "                  f"`{user_id}.{creation_timestamp}.{'x' * len(hmac)}`" diff --git a/bot/cogs/verification.py b/bot/cogs/verification.py index b0667fdd0..7f1c9e68a 100644 --- a/bot/cogs/verification.py +++ b/bot/cogs/verification.py @@ -37,7 +37,7 @@ class Verification:          self.bot = bot      @property -    def modlog(self) -> ModLog: +    def mod_log(self) -> ModLog:          return self.bot.get_cog("ModLog")      async def on_message(self, message: Message): @@ -90,7 +90,7 @@ class Verification:          log.trace(f"Deleting the message posted by {ctx.author}.")          try: -            self.modlog.ignore_message_deletion(ctx.message.id) +            self.mod_log.ignore_message_deletion(ctx.message.id)              await ctx.message.delete()          except NotFound:              log.trace("No message found, it must have been deleted by another bot.")  |