Bienvenue sur Mr_BOT, un bot Discord complet et créé de toutes pièces, prêt à être utilisé et modifié selon vos besoins ! Ce projet est actuellement actif et utilise plusieurs API gratuites pour offrir une variété de fonctionnalités à votre serveur Discord.
- Intégration avec l'API Klipy pour la gestion de GIFs.
- Utilisation de l'API Fluxpoint pour des fonctionnalités supplémentaires.
- Support d'une base de données (MariaDB) pour la persistance des données.
- Système de log avec
winstonet gestion de la durée de rétention des logs. - Personnalisable et open source pour ajouter vos propres fonctionnalités.
Avant de pouvoir exécuter le bot, assurez-vous d'avoir les éléments suivants installés :
- Node.js (version 20.x ou plus)
- npm
- Un serveur Discord pour tester le bot
- Un compte sur Discord Developer Portal pour générer un token de bot
- Des clés API pour les services Klipy et Reddit (gratuites) & Fluxpoint (payant)
-
Cloner le dépôt :
git clone https://github.com/Ludo-code/Mr_BOT.git cd Mr_BOT -
Installer les dépendances :
npm install
-
Configuration de l'environnement :
Créez un fichier
.envà la racine du projet avec les valeurs suivantes :BOT_TOKEN=<DISCORD_BOT_TOKEN> KLIPY_API_KEY_NAME=<KLIPY_API_KEY_NAME> KLIPY_API_KEY=<KLIPY_API_KEY> FLUXPOINT_API_KEY=<FLUXPOINT_API_KEY> REDDIT_CLIENT_ID=<REDDIT_CLIENT_ID> REDDIT_CLIENT_SECRET=<REDDIT_CLIENT_SECRET> REDDIT_USER_AGENT=<REDDIT_USER_AGENT> UPTIME_KUMA_URL=<UPTIME_KUMA_URL> DB_NAME=<DATABASE_NAME> DB_USERNAME=<DATABASE_USERNAME> DB_PASSWORD=<DATABASE_PASSWORD> DB_HOST=<DATABASE_ADDRESS_OR_IP> DB_PORT=<DATABASE_PORT> DB_DIALECT=mariadb
| Variable | Description | Obligatoire |
|---|---|---|
BOT_TOKEN |
🎮 Token du bot Discord, récupérable depuis Discord Developer Portal. | ✅ Oui |
KLIPY_API_KEY_NAME |
🔑 Nom d’identifiant pour la clé Klipy (valeur libre, selon vos préférences). | ✅ Oui |
KLIPY_API_KEY |
🎬 Clé API Klipy (pour les GIFs). | ✅ Oui |
FLUXPOINT_API_KEY |
🧪 Clé API Fluxpoint (payante, one time buy). | ✅ Oui |
REDDIT_CLIENT_ID |
👽 Identifiant client Reddit généré via votre application Reddit. | ✅ Oui |
REDDIT_CLIENT_SECRET |
🧠 Secret client Reddit associé à votre App. | ✅ Oui |
REDDIT_USER_AGENT |
🛰️ Nom d’agent utilisateur Reddit (obligatoire, à définir selon votre App, ex. DiscordBot). |
✅ Oui |
UPTIME_KUMA_URL |
📡 URL push Uptime Kuma (laisser vide si non utilisé). | ❌ Non |
DB_NAME |
🗃️ Nom de la base de données. | ✅ Oui |
DB_USERNAME |
👤 Utilisateur de la base de données. | ✅ Oui |
DB_PASSWORD |
🔐 Mot de passe de la base de données. | ✅ Oui |
DB_HOST |
🌐 Adresse ou IP du serveur de base de données. | ✅ Oui |
DB_PORT |
🚪 Port utilisé (par défaut MariaDB : 3306). |
✅ Oui |
DB_DIALECT |
🛠️ Dialecte utilisé (mariadb, mysql, etc.). |
✅ Oui |
- Lancer le bot :
npm start
Le bot utilise winston pour le logging avec rotation automatique des fichiers :
- Les fichiers de log sont créés quotidiennement avec un nom de fichier basé sur la date (
logs/Mr_BOT-DD-MM-YYYY.log). - Les anciens fichiers de log sont automatiquement compressés et conservés pendant 180 jours (6 mois).
- Après 6 mois, les fichiers de log sont automatiquement supprimés.
Pour personnaliser la configuration des logs, vous pouvez modifier le fichier logger dans le code source, en particulier les options filename, maxSize, maxFiles, et zippedArchive dans le transport DailyRotateFile.
- Klipy API – Utilisée pour envoyer des GIFs directement dans les canaux Discord.
- Fluxpoint API – Utilisée pour des fonctionnalités diverses comme des citations, images, etc.
- Reddit API – Utilisée pour récupérer des publications Reddit selon des critères définis (ex : subreddit, post populaire ou aléatoire). Requiert l’App Reddit configurée via Reddit Apps.
Les contributions sont les bienvenues ! Si vous avez des idées de nouvelles fonctionnalités ou trouvez des bugs, n'hésitez pas à ouvrir une issue ou une pull request.
Si vous avez besoin d'aide pour configurer ou utiliser le bot, n'hésitez pas à me contacter via un ticket sur GitHub ou sur Discord.
Projet actif et en développement constant !