feat(commands/tools/clear): add --reactions

This commit is contained in:
Ryan 2024-12-30 20:28:58 -05:00
parent 333d6890c2
commit 1a71d83ebd
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3

View File

@ -38,6 +38,12 @@ async def clear(message):
action="store_true", action="store_true",
help="delete oldest messages first", help="delete oldest messages first",
) )
parser.add_argument(
"-R",
"--reactions",
action="store_true",
help="delete messages with reactions",
)
if not (args := await parser.parse_args(message, tokens)): if not (args := await parser.parse_args(message, tokens)):
return return
@ -47,17 +53,20 @@ async def clear(message):
c.append(re.match(r, m.content)) c.append(re.match(r, m.content))
if i := args.author_id: if i := args.author_id:
c.append(m.author.id in i) c.append(m.author.id in i)
if args.reactions:
c.append(len(m.reactions) > 0)
return all(c) return all(c)
message_count = len( messages = len(
await message.channel.purge( await message.channel.purge(
limit=args.count, check=check, oldest_first=args.oldest_first limit=args.count, check=check, oldest_first=args.oldest_first
) )
) )
try: try:
await utils.reply( await utils.reply(
message, message,
f"purged **{message_count} {'message' if message_count == 1 else 'messages'}**", f"purged **{messages}/{args.count} {'message' if args.count == 1 else 'messages'}**",
) )
except: except:
pass pass