Kuby/README.md
2026-01-01 18:48:25 +01:00

256 lines
8.2 KiB
Markdown
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 Kuby Discord Bot
Un bot Discord avancé et sécurisé développé en Python avec discord.py, conçu pour la gestion de serveurs et l'automatisation.
## 📋 Table des matières
- [🤖 Kuby Discord Bot](#-kuby-discord-bot)
- [📋 Table des matières](#-table-des-matières)
- [🚀 Fonctionnalités](#-fonctionnalités)
- [⚙️ Installation](#-installation)
- [🔧 Configuration](#-configuration)
- [📁 Structure du projet](#-structure-du-projet)
- [🎯 Utilisation](#-utilisation)
- [🛡️ Sécurité](#-sécurité)
- [🔍 Logging](#-logging)
- [🐛 Dépannage](#-dépannage)
- [🤝 Contribution](#-contribution)
- [📄 Licence](#-licence)
## 🚀 Fonctionnalités
### ✅ Fonctionnalités principales
- **Système de whitelist** : Contrôle d'accès basé sur une liste blanche
- **Logs avancés** : Suivi détaillé de toutes les activités du serveur
- **Système de bienvenue/au revoir** : Messages personnalisés pour les arrivées/départs
- **Sécurité renforcée** : Protection contre les raids et les utilisateurs malveillants
- **Commandes de modération** : Outils complets pour les modérateurs
- **Sauvegardes automatiques** : Backup régulier des données importantes
### 🎮 Commandes disponibles
| Commande | Description | Usage |
|----------|-------------|--------|
| `!whitelist add @user` | Ajoute un utilisateur à la whitelist | `!whitelist add @Kuby` |
| `!whitelist remove @user` | Retire un utilisateur de la whitelist | `!whitelist remove @Kuby` |
| `!whitelist list` | Liste tous les utilisateurs whitelistés | `!whitelist list` |
| `!setwelcome #channel` | Définit le canal de bienvenue | `!setwelcome #bienvenue` |
| `!setgoodbye #channel` | Définit le canal d'au revoir | `!setgoodbye #depart` |
| `!security settings` | Affiche les paramètres de sécurité | `!security settings` |
| `!snipe` | Récupère le dernier message supprimé | `!snipe` |
| `!fun meme` | Envoie un meme aléatoire | `!fun meme` |
## ⚙️ Installation
### Prérequis
- Python 3.8 ou supérieur
- Un compte Discord avec des permissions d'administrateur
- Un serveur Discord pour tester le bot
### Étapes d'installation
1. **Cloner le repository**
```bash
git clone [URL_DU_REPO]
cd kuby-bot
```
2. **Créer un environnement virtuel**
```bash
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
```
3. **Installer les dépendances**
```bash
pip install -r requirements.txt
```
4. **Créer le fichier .env**
```bash
cp .env.example .env
```
5. **Configurer les variables d'environnement**
Éditer le fichier `.env` avec vos informations :
```
DISCORD_TOKEN=VOTRE_TOKEN_BOT
APPLICATION_ID=VOTRE_APPLICATION_ID
```
6. **Lancer le bot**
```bash
python bot.py
```
## 🔧 Configuration
### Fichier .env
```env
# Token du bot Discord (obligatoire)
DISCORD_TOKEN=your_bot_token_here
# ID de l'application Discord (optionnel mais recommandé)
APPLICATION_ID=your_application_id_here
# Configuration du logging
LOG_LEVEL=INFO
LOG_FILE_MAX_SIZE=10MB
LOG_BACKUP_COUNT=5
```
### Permissions Discord requises
- **Administrator** : Pour une gestion complète du serveur
- **Manage Server** : Pour modifier les paramètres du serveur
- **Manage Channels** : Pour créer/modifier les canaux
- **Manage Roles** : Pour gérer les rôles
- **Kick Members** : Pour expulser des membres
- **Ban Members** : Pour bannir des membres
- **Read Messages** : Pour lire les messages
- **Send Messages** : Pour envoyer des messages
- **Embed Links** : Pour envoyer des embeds
- **Attach Files** : Pour envoyer des fichiers
- **Add Reactions** : Pour ajouter des réactions
## 📁 Structure du projet
```
kuby-bot/
├── bot.py # Point d'entrée principal du bot
├── kuby.py # Classe principale MyBot avec événements
├── requirements.txt # Dépendances Python
├── .env # Variables d'environnement (non versionné)
├── .gitignore # Fichiers à ignorer par Git
├── README.md # Ce fichier
├── data/ # Dossier pour les données
│ ├── security_settings.json # Paramètres de sécurité
│ ├── logs/ # Fichiers de logs
│ └── member_logs/ # Logs des membres
├── commandes/ # Extensions (cogs) du bot
│ ├── __init__.py
│ ├── whitelist.py # Gestion de la whitelist
│ ├── whitelist_monitor.py # Surveillance de la whitelist
│ ├── security.py # Commandes de sécurité
│ ├── fun.py # Commandes amusantes
│ ├── snipe.py # Récupération de messages
│ ├── sendbotmessages.py # Envoi de messages via le bot
│ ├── setwelcomechannel.py # Configuration canal bienvenue
│ ├── setgoodbyechannel.py # Configuration canal au revoir
│ └── whitelist_monitor.py # Monitoring de la whitelist
├── src/ # Code source utilitaire
│ ├── logger.py # Configuration du logging
│ └── advanced_logger.py # Logger avancé avec fonctionnalités
└── utils/ # Utilitaires divers
```
## 🎯 Utilisation
### Premier démarrage
1. Invitez le bot sur votre serveur avec les permissions appropriées
2. Configurez le canal de bienvenue avec `!setwelcome #channel`
3. Configurez le canal d'au revoir avec `!setgoodbye #channel`
4. Ajoutez les modérateurs à la whitelist avec `!whitelist add @modérateur`
### Configuration de la sécurité
```bash
# Activer la surveillance de la whitelist
!security enable
# Voir les paramètres actuels
!security settings
# Configurer les notifications
!security notifications #channel
```
## 🛡️ Sécurité
### Système de whitelist
Le bot utilise un système de liste blanche pour contrôler l'accès aux commandes :
- Seuls les utilisateurs whitelistés peuvent utiliser les commandes
- Les administrateurs du serveur sont automatiquement whitelistés
- Les modifications de la whitelist sont loguées
### Protection contre les raids
- Détection automatique des arrivées massives
- Notifications aux administrateurs
- Actions automatiques possibles (kick, ban)
### Logs de sécurité
Toutes les actions importantes sont enregistrées :
- Connexions/déconnexions
- Modifications de la whitelist
- Arrivées/départs de membres
- Suppressions de messages
- Modifications de rôles
## 🔍 Logging
### Niveaux de logs
- **DEBUG** : Informations détaillées pour le développement
- **INFO** : Informations générales sur le fonctionnement
- **WARNING** : Avertissements sur des comportements potentiellement problématiques
- **ERROR** : Erreurs qui n'empêchent pas le fonctionnement
- **CRITICAL** : Erreurs graves qui nécessitent une intervention
### Fichiers de logs
Les logs sont stockés dans `data/logs/` avec rotation automatique :
- `kuby.log` : Logs principaux
- `security.log` : Logs de sécurité
- `commands.log` : Logs des commandes
## 🐛 Dépannage
### Problèmes courants
#### "Bot ne se connecte pas"
1. Vérifiez le token dans `.env`
2. Assurez-vous que le bot a les bonnes permissions
3. Vérifiez la connexion Internet
#### "Commandes ne fonctionnent pas"
1. Vérifiez que l'utilisateur est whitelisté
2. Vérifiez les permissions du bot
3. Consultez les logs pour les erreurs
#### "Erreur de permissions"
1. Vérifiez que le bot a le rôle approprié
2. Vérifiez la hiérarchie des rôles
3. Assurez-vous que le bot est au-dessus des rôles à gérer
### Commandes de debug
```bash
# Vérifier l'état du bot
!ping
# Voir les logs récents
!logs recent
# Vérifier la configuration
!config check
```
## 🤝 Contribution
### Rapport de bugs
Pour signaler un bug :
1. Vérifiez les issues existantes
2. Créez une nouvelle issue avec :
- Description détaillée
- Étapes pour reproduire
- Logs pertinents
- Environnement (Python version, discord.py version)
## 📄 Licence
Ce projet est sous licence MIT. Voir le fichier `LICENSE` pour plus de détails.
---
**Développé avec Lowei et Gameur ❤️ par l'équipe Omega Kube**
Pour toute question ou support, rejoignez notre serveur Discord ou créez une issue sur GitHub.