Beta/commandes/security/purge.py

33 lines
1.2 KiB
Python
Raw Normal View History

2026-02-06 22:23:20 +01:00
import discord
async def execute(bot, params, message):
purges = params.get('purges', [])
if not purges:
# Fallback for single purge
purges = [params]
total_deleted = 0
for purge_params in purges:
channel_name = purge_params.get('channel_name')
channel_id = purge_params.get('channel_id')
amount = purge_params.get('amount', 10)
guild = message.guild
channel = None
if channel_id:
try:
channel = guild.get_channel(int(channel_id))
except ValueError:
pass
elif channel_name:
channel = discord.utils.find(lambda c: c.name.casefold() == channel_name.casefold(), guild.channels)
if not channel:
identifier = channel_id or channel_name or 'inconnu'
await message.channel.send(f"Salon '{identifier}' introuvable.")
continue
try:
deleted = await channel.purge(limit=amount)
total_deleted += len(deleted)
except discord.Forbidden:
await message.channel.send(f"Je n'ai pas les permissions pour purger {channel.mention}.")
if total_deleted > 0:
await message.channel.send(f"{total_deleted} messages supprimés au total.")