discord_modif.py
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.
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
.
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.
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 serveurname
: str — Nom de la catégorievisibility
: 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 serveurname
: str — Nom du saloncategory_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 serveurname
: str — Nom du salon vocalcategory_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 serveurold_name
: str — Nom actuel du salonnew_name
: str — Nouveau nom à donnerdelete(guild_id: int, names)
Supprime un ou plusieurs salons/catégories/roles par nom.
guild_id
: int — ID du serveurnames
: str | list[str] — Nom du salon/catégorie/role ou liste de nomsdelete_all(guild_id: int)
Supprime tous les salons et tous les rôles (sauf @everyone
) du serveur.
guild_id
: int — ID du serveurRenameServer(guild_id: int, new_name: str)
Renomme le serveur.
guild_id
: intnew_name
: strcheck(guild_id: int, log=True)
Détecte les comptes suspects et enregistre un rapport logs/suspects_...
.
guild_id
: intlog
: bool — Active l’écriture du fichier logwarn(guild_id: int, member_id: int, reason="Comportement inapproprié.")
Envoie un avertissement par message privé à un membre.
guild_id
: intmember_id
: intreason
: str — Message d’avertissementban(guild_id: int, member_id: int, reason="Violation du règlement.")
Bannit un membre du serveur.
guild_id
: intmember_id
: intreason
: str — Message de bannissementkick(guild_id: int, member_id: int, reason="Comportement inacceptable.")
Expulse un membre du serveur.
guild_id
: intmember_id
: intreason
: str — Message d’expulsionmute(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
: intmember_id
: intreason
: strduration
: 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
: intCreateRole(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
: intname
: strcolor
: str — blue
, red
…separate
: booladmin
: boolban
, kick
, mute
: boolsend(guild_id: int, channel_name: str, message: str)
Envoie un message dans un salon textuel du serveur.
guild_id
: intchannel_name
: strmessage
: strSetPermAdministrator(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 serveurrole_name
: str — Nom du rôlevalue
: 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
: introle_name
: strvalue
: boolSetPermBanMembers(guild_id: int, role_name: str, value: bool)
Permet à un rôle de bannir des membres du serveur.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermKickMembers(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’expulser (kick) des membres du serveur.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermManageRoles(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
: introle_name
: strvalue
: boolSetPermManageChannels(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
: introle_name
: strvalue
: boolSetPermManageWebhooks(guild_id: int, role_name: str, value: bool)
Permet à un rôle de gérer les Webhooks.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermManageEmojisAndStickers(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
: introle_name
: strvalue
: boolSetPermManageEvents(guild_id: int, role_name: str, value: bool)
Permet à un rôle de gérer les événements du serveur.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermManageThreads(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
: introle_name
: strvalue
: boolSetPermManageMessages(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
: introle_name
: strvalue
: boolSetPermMuteMembers(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
: introle_name
: strvalue
: boolSetPermDeafenMembers(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
: introle_name
: strvalue
: boolSetPermMoveMembers(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
: introle_name
: strvalue
: boolSetPermPrioritySpeaker(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
: introle_name
: strvalue
: boolSetPermStream(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
: introle_name
: strvalue
: boolSetPermSendMessages(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’envoyer des messages dans les salons textuels.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermSendTTSMessages(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’envoyer des messages text-to-speech (TTS).
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermAddReactions(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’ajouter des réactions aux messages.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermAttachFiles(guild_id: int, role_name: str, value: bool)
Permet à un rôle de joindre des fichiers aux messages.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermEmbedLinks(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’intégrer des liens dans les messages.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermMentionEveryone(guild_id: int, role_name: str, value: bool)
Permet à un rôle de mentionner @everyone
et @here
.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermUseExternalEmojis(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’utiliser des emojis externes sur le serveur.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermUseExternalStickers(guild_id: int, role_name: str, value: bool)
Permet à un rôle d’utiliser des stickers externes sur le serveur.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermConnect(guild_id: int, role_name: str, value: bool)
Permet à un rôle de rejoindre des salons vocaux.
Paramètres :
guild_id
: introle_name
: strvalue
: boolSetPermSpeak(guild_id: int, role_name: str, value: bool)
Permet à un rôle de parler dans les salons vocaux.
Paramètres :
guild_id
: introle_name
: strvalue
: boolleave()
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 serveurchannel_name
: str — Nom du salon textuelname
: 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
: intchannel_name
: strname
: 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
: intchannel_name
: strreason
: 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
: intchannel_name
: strcreated_by
: str — Nom de l’utilisateur ayant créé le lien (optionnel)discord.Client
avec les intents nécessaires.QuitServer
, send
, etc.