📘 Documentation - Librairie discord_modif.py

📦 Installation

Ce module nécessite Python 3.10+ et la librairie discord.py.
Installez les dépendances avec :

git clone https://github.com/MJVhack/discord.py_v2.git

cd discord.py_v2

cd {la version que vous voulez}

pip install -r requirements.txt

les requirements.txt sont disponible que depuis la 2.0 Si vous prévoyez d’utiliser des fonctionnalités avancées (logs, gestion JSON…), aucun module supplémentaire n’est requis car tout est géré avec la bibliothèque standard Python.

🔧 Introduction

Le module discord_modif fournit des outils pour interagir avec l'API de Discord via un client discord.py.
Il encapsule la logique asynchrone dans une interface simple, utilisable sans async/await dans votre main.py.

🚀 Démarrage

Conseil : placez votre main.py dans le dossier parent de discord_modif.py.
Importez simplement avec :

from [dossier parent] import discord_modif as dm

ou si pip

from discord.modif import discord.modif as dm

Placez un fichier token.txt à côté de votre main.py contenant le token de votre bot.

Démarrez le bot avec :

dm.start()
Sans cet appel, rien ne fonctionnera ! Il utilisera token.txt pour se connecter.

📚 Fonctions disponibles

start()

Démarre le bot Discord dans un thread séparé. À appeler avant toute autre fonction.

QuitServer(server_id: int)

Fait quitter au bot un serveur donné.

Paramètres :

server_id : int — ID du serveur à quitter.

list(guild_id: int)

Liste tous les salons présents dans un serveur.

guild_id : int — ID du serveur ciblé

CreateCategory(guild_id: int, name: str, visibility: str = "Public")

Crée une catégorie dans le serveur.

guild_id : int — ID du serveur
name : str — Nom de la catégorie
visibility : str — "Public" ou "Private"

CreateTextChannel(guild_id: int, name: str, category_name: str = None, visibility: str = "Public")

Crée un salon textuel dans une catégorie donnée, ou à la racine si category_name est omis.

guild_id : int — ID du serveur
name : str — Nom du salon
category_name : str — Nom de la catégorie (optionnel)
visibility : str — "Public" ou "Private"

CreateVocalChannel(guild_id: int, name: str, category_name: str = None, visibility: str = "Public")

Crée un salon vocal dans une catégorie donnée, ou à la racine si category_name est omis.

guild_id : int — ID du serveur
name : str — Nom du salon vocal
category_name : str — Nom de la catégorie (optionnel)
visibility : str — "Public" ou "Private"

RenameChannel(guild_id: int, old_name: str, new_name: str)

Renomme un salon (textuel, vocal ou catégorie) dans le serveur.

guild_id : int — ID du serveur
old_name : str — Nom actuel du salon
new_name : str — Nouveau nom à donner

delete(guild_id: int, names)

Supprime un ou plusieurs salons/catégories/roles par nom.

guild_id : int — ID du serveur
names : str | list[str] — Nom du salon/catégorie/role ou liste de noms

delete_all(guild_id: int)

Supprime tous les salons et tous les rôles (sauf @everyone) du serveur.

guild_id : int — ID du serveur

RenameServer(guild_id: int, new_name: str)

Renomme le serveur.

guild_id : int
new_name : str

check(guild_id: int, log=True)

Détecte les comptes suspects et enregistre un rapport logs/suspects_....

guild_id : int
log : bool — Active l’écriture du fichier log

warn(guild_id: int, member_id: int, reason="Comportement inapproprié.")

Envoie un avertissement par message privé à un membre.

guild_id : int
member_id : int
reason : str — Message d’avertissement

ban(guild_id: int, member_id: int, reason="Violation du règlement.")

Bannit un membre du serveur.

guild_id : int
member_id : int
reason : str — Message de bannissement

kick(guild_id: int, member_id: int, reason="Comportement inacceptable.")

Expulse un membre du serveur.

guild_id : int
member_id : int
reason : str — Message d’expulsion

mute(guild_id: int, member_id: int, reason="Silence temporaire", duration=None)

Réduit un membre au silence (mute) sur le serveur, temporairement ou non.

guild_id : int
member_id : int
reason : str
duration : int — Durée en secondes (None = permanent)

PrepareCommunity(guild_id: int)

Prépare le serveur à être une communauté officielle (création de salons, notifie les membres, modifie la sécurité).

guild_id : int

CreateRole(guild_id: int, name: str, color="default", separate=False, admin=False, ban=False, kick=False, mute=False)

Crée un rôle avec permissions personnalisées.

guild_id : int
name : str
color : str — blue, red…
separate : bool
admin : bool
ban, kick, mute : bool

send(guild_id: int, channel_name: str, message: str)

Envoie un message dans un salon textuel du serveur.

guild_id : int
channel_name : str
message : str

SetPermAdministrator(guild_id: int, role_name: str, value: bool)

Active ou désactive la permission Administrateur pour un rôle donné dans le serveur (donne tous les droits).

Paramètres :

guild_id : int — ID du serveur
role_name : str — Nom du rôle
value : bool — True (active) ou False (désactive)

SetPermViewAuditLog(guild_id: int, role_name: str, value: bool)

Permet à un rôle de voir les logs d’audit du serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermBanMembers(guild_id: int, role_name: str, value: bool)

Permet à un rôle de bannir des membres du serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermKickMembers(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’expulser (kick) des membres du serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageRoles(guild_id: int, role_name: str, value: bool)

Permet à un rôle de gérer/modifier les rôles du serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageChannels(guild_id: int, role_name: str, value: bool)

Permet à un rôle de créer, modifier ou supprimer les salons du serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageWebhooks(guild_id: int, role_name: str, value: bool)

Permet à un rôle de gérer les Webhooks.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageEmojisAndStickers(guild_id: int, role_name: str, value: bool)

Permet à un rôle de gérer les emojis et stickers personnalisés.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageEvents(guild_id: int, role_name: str, value: bool)

Permet à un rôle de gérer les événements du serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageThreads(guild_id: int, role_name: str, value: bool)

Permet à un rôle de gérer les threads (sous-conversations) sur le serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermManageMessages(guild_id: int, role_name: str, value: bool)

Permet à un rôle de supprimer ou épingler les messages d’autres membres.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermMuteMembers(guild_id: int, role_name: str, value: bool)

Permet à un rôle de réduire au silence les membres dans les salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermDeafenMembers(guild_id: int, role_name: str, value: bool)

Permet à un rôle de rendre sourds des membres dans les salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermMoveMembers(guild_id: int, role_name: str, value: bool)

Permet à un rôle de déplacer des membres entre les salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermPrioritySpeaker(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’utiliser la priorité de parole dans les salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermStream(guild_id: int, role_name: str, value: bool)

Permet à un rôle de diffuser en direct (Go Live) dans les salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermSendMessages(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’envoyer des messages dans les salons textuels.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermSendTTSMessages(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’envoyer des messages text-to-speech (TTS).

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermAddReactions(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’ajouter des réactions aux messages.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermAttachFiles(guild_id: int, role_name: str, value: bool)

Permet à un rôle de joindre des fichiers aux messages.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermEmbedLinks(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’intégrer des liens dans les messages.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermMentionEveryone(guild_id: int, role_name: str, value: bool)

Permet à un rôle de mentionner @everyone et @here.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermUseExternalEmojis(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’utiliser des emojis externes sur le serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermUseExternalStickers(guild_id: int, role_name: str, value: bool)

Permet à un rôle d’utiliser des stickers externes sur le serveur.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermConnect(guild_id: int, role_name: str, value: bool)

Permet à un rôle de rejoindre des salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

SetPermSpeak(guild_id: int, role_name: str, value: bool)

Permet à un rôle de parler dans les salons vocaux.

Paramètres :

guild_id : int
role_name : str
value : bool

leave()

Arrête le client Discord proprement.

GenerateWebhook(guild_id: int, channel_name: str, name: str = "ModWebhook")

Crée un webhook dans un salon textuel du serveur. Utile pour automatiser l’envoi de messages via une URL spéciale.

guild_id : int — ID du serveur
channel_name : str — Nom du salon textuel
name : str — Nom du webhook (défaut : "ModWebhook")

DeleteWebhook(guild_id: int, channel_name: str, name: str = None)

Supprime un ou plusieurs webhooks dans un salon textuel. Si name est omis, tous les webhooks du salon sont supprimés.

guild_id : int
channel_name : str
name : str — Nom du webhook à supprimer (optionnel)

CreateInviteLink(guild_id: int, channel_name: str, reason: str = "Invitation automatique")

Crée un lien d’invitation permanent pour un salon textuel du serveur.

guild_id : int
channel_name : str
reason : str — Motif de l’invitation (optionnel)

DeleteInviteLink(guild_id: int, channel_name: str, created_by: str = None)

Supprime les liens d’invitation d’un salon texte. Si created_by est précisé, seuls les liens créés par cet utilisateur seront supprimés.

guild_id : int
channel_name : str
created_by : str — Nom de l’utilisateur ayant créé le lien (optionnel)

📌 Notes