Files
Discord-Radio-Bot/modules/ClearChannelMessages/cog.py
Logan Cusano 9dba89a60b //WIP v3
Clear Messages Changes
- Check for negative numbers... Gino
2022-04-09 22:14:21 -04:00

48 lines
1.7 KiB
Python

import logging
from discord.ext import commands
LOGGER = logging.getLogger("Discord_Radio_Bot.LinkCop")
class ClearMessages(commands.Cog):
def __init__(self, bot):
self.Bot = bot
@commands.command(name='displayprofiles',
help="Use this command to clear a given number of messages from the channel it is called in.\n"
"Example command:\n"
"\t@ clear\n"
"\t@ clear 10",
breif="Clear x messages in the channel it's called in")
async def clear(self, ctx, amount: int = 2):
member = ctx.author.display_name
member_id = ctx.author.id
mtn_member = f"<@{member_id}>"
if amount < 0:
ctx.send(f"{member}, the number needs to be positive...")
else:
LOGGER.info(f"Clear {amount} messages requested by {member}")
authors = {}
async for message in ctx.channel.history(limit=amount):
if message.author not in authors:
authors[message.author] = 1
else:
authors[message.author] += 1
await message.delete()
msg = f"{mtn_member}, I deleted {sum(authors.values())} messages from {len(authors.keys())} users:\n"
LOGGER.debug(f"Deleted {sum(authors.values())} messages from {ctx.message.channel}")
for author in authors.keys():
msg += f"\t{str(author).split('#', 1)[0]}: {authors[author]}\n"
LOGGER.debug(f"Deleted {authors[author]} messages from {author}")
await ctx.send(msg)
def setup(bot: commands.Bot):
bot.add_cog(ClearMessages(bot))