Skip to main content

Créer un bot Discord pour nettoyer automatiquement les canaux d'un serveur.

Créer un bot Discord pour envoyersupprimé unles messagemessages pré-rédigé àde différents canaux est faisable avec Python et la bibliothèque discord.py. Voici un guide simple pour le mettre en place sous Debian.


Étapes pour créer et exécuter le bot

1. Créer une application Discord

  1. Rendez-vous sur le portail des développeurs Discord.
  2. Cliquez sur New Application, donnez-lui un nom, et cliquez sur Create.
  3. Allez dans l’onglet Bot et cliquez sur Add Bot. Confirmez.
  4. Sous Token, cliquez sur Copy pour sauvegarder le token du bot (gardez-le privé).

2. Inviter le bot sur votre serveur

  1. Sous l’onglet OAuth2 > URL Generator, cochez :
    • bot dans Scopes.
    • Les permissions nécessaires dans Bot Permissions (par exemple, Send Messages).
  2. Copiez l’URL générée et ouvrez-la dans votre navigateur.
  3. Invitez le bot sur votre serveur Discord en suivant les instructions.

3. Installer les dépendances

Sur votre Debian, installez Python et les bibliothèques nécessaires :

sudo apt update
sudo apt install python3 python3-pip -y
pip3 install discord.py

4. Écrire le script Python

Créez un fichier bot.py avec le contenu suivant :

import discord
from discord.ext import commands
import asyncio

# Remplacez par votre propre token
TOKEN = "VOTRE_TOKEN_ICI"
# Remplacez par les IDs des canaux ou vous souhaitez effacer des messages
CHANNEL_IDS = [123456789012345678, 987654321098765432]  # Exemple d'IDs de canaux
# Nombre maximum de messages a supprimer par execution
AMOUNT_TO_CLEAR = 100

# Initialisation du bot avec les intentions necessaires
intents = discord.Intents.default()
intents.messages = True  # Permet au bot d'interagir avec les messages
bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_ready():
    print(f"Bot connected comme {bot.user}")

    for channel_id in CHANNEL_IDS:
        channel = bot.get_channel(channel_id)
        if channel:
            try:
                # Purge des messages dans le canal
                deleted = await channel.purge(limit=AMOUNT_TO_CLEAR)
                print(f"{len(deleted)} messages supprimes dans le canal {channel_id}.")
            except discord.errors.Forbidden:
                print(f"Acces refuse pour supprimer les messages dans le canal {channel_id}.")
            except discord.errors.HTTPException as e:
                print(f"Erreur HTTP lors de la tentative de purge dans le canal {channel_id}: {e}")
        else:
            print(f"Canal avec ID {channel_id} introuvable.")

    # Arreter le bot apres l'execution de la purge
    await bot.close()

# Lancer le bot
bot.run(TOKEN)

5. Obtenir les IDs des canaux

Activez le Mode Développeur dans Discord (Paramètres > Avancés > Mode Développeur). Faites un clic droit sur le canal concerné et sélectionnez Copier l’identifiant.

6. Exécuter le script

Lancez le bot avec :

7. Automatiser l’exécution

Utilisez cron pour exécuter le script régulièrement :

  1. Ouvrez l’éditeur crontab :

  2. Ajoutez une ligne pour exécuter le bot à une heure spécifique (remplacez le chemin par celui de votre script) :

    0 9 * * * /usr/bin/python3 /chemin/vers/bot.py
    

Points importants

  • Gardez votre token secret : Ne partagez jamais votre token. Si vous pensez qu'il est compromis, régénérez-le depuis le portail Discord.
  • Permissions du bot : Vérifiez que le bot a bien les permissions nécessaires sur chaque canal.
  • Testez localement : Assurez-vous que le script fonctionne correctement avant de l’automatiser.