Bot Discord automatisé pour gérer et faciliter les interactions sur le serveur Discord de Zone01 Rouen Normandie.
# Cloner le projet
git clone <url-du-repo>
cd bot-discord-zone01
# Installer les dépendances
pip install -r requirements.txt
# Configurer les variables d'environnement
cp .env.example .env
# Éditer .env avec vos tokens et clés API
# Lancer le bot
python bot.py- Créer un bot Discord sur Discord Developer Portal
- Récupérer le token et le mettre dans
.env - Configurer
data/config.jsonavec les IDs de votre serveur Discord - Lancer le bot avec
python bot.py
- Les étudiants peuvent demander de l'aide via un bouton
- Le bot contacte automatiquement des Helpers disponibles
- Gestion intelligente des refus et acceptations
- Nouveau : Historique complet des demandes avec statistiques
- Recherche automatique d'offres d'alternance et CDI sur LinkedIn
- Publication automatique dans des canaux forum
- Mise à jour 2x par jour via scheduler
- Affichage de la timeline des promotions avec suivi en temps réel
- Suivi de la progression des étudiants
- Nouveau : Mise à jour interactive avec barre de progression
- Nouveau : Ajout de promotions à la volée avec
/add_promotion - Configuration automatique des canaux et rôles pour chaque promotion
- Affichage dynamique de toutes les promotions configurées
- Logs détaillés avec niveaux (INFO, SUCCESS, WARNING, ERROR)
- Catégorisation par système (bot, help_system, jobs, scheduler)
- Stockage persistant dans
data/bot_logs.json - Nouveau : Logs dédiés pour le système d'aide avec statistiques
/show_config- Affiche la configuration du bot avec toutes les promotions/edit_config- Modifie la configuration (canaux/rôles)/add_promotion- Ajoute une nouvelle promotion avec son canal et rôle ✨
/setup_reaction_help- Configure le message d'aide avec bouton/reload_help_message- Recharge le message d'aide/help_logs- Affiche l'historique et les statistiques du système d'aide ✨
/timeline- Met à jour la progression avec suivi en temps réel ✨
!ping- Test de latence!help- Affiche l'aide!setqueryIntern <query>- Définit la recherche d'alternance (admin)!setqueryFulltime <query>- Définit la recherche de CDI (admin)!update_internships- Force la mise à jour des alternances (admin)!update_fulltime- Force la mise à jour des CDI (admin)!timeline- Affiche la timeline des promotions (admin) - Version classique
bot-discord-zone01/
├── bot.py # Point d'entrée
├── requirements.txt # Dépendances
├── .env # Configuration (à créer)
├── README.md # Ce fichier
├── DOCUMENTATION.md # Documentation complète
├── cogs/ # Extensions du bot
│ ├── administration_cog.py
│ ├── configuration_cog.py
│ ├── reaction_help_cog.py
│ └── utilitaire_cog.py
├── utils/ # Utilitaires
│ ├── config_loader.py
│ ├── logger.py
│ ├── scheduler.py
│ ├── handlers.py
│ └── ...
└── data/ # Données persistantes
├── config.json # Configuration du bot
├── bot_logs.json # Logs généraux
├── help_requests.json # Demandes d'aide en cours
├── help_logs.json # Historique des demandes d'aide
└── technologies.json # Technologies pour les offres
TOKEN='votre_token_discord'
RAPIDAPI_KEY='votre_cle_rapidapi'
QUERY_INTERNSHIP='Développeur Web Alternance France'
QUERY_FULLTIME='Développeur Full Stack CDI France'
NOTION_TOKEN='votre_token_notion'
NOTION_DATABASE_ID='votre_database_id'Contient les IDs de canaux, rôles et serveur. Voir DOCUMENTATION.md pour plus de détails.
Pour une documentation complète incluant :
- Installation détaillée
- Configuration avancée
- Toutes les commandes
- Architecture du projet
- Troubleshooting
- Déploiement en production
👉 Consultez DOCUMENTATION.md
- Discord.py - Bibliothèque Discord pour Python
- APScheduler - Planification de tâches automatiques
- Requests - Requêtes HTTP
- python-dotenv - Gestion des variables d'environnement
- Notion Client - Intégration Notion (optionnel)
- Ne jamais commit le fichier
.env - Ne jamais partager votre token Discord
- Régénérer immédiatement tout token compromis
- Vérifiez que le token dans
.envest correct - Vérifiez que toutes les dépendances sont installées
- Attendez quelques minutes (synchronisation)
- Relancez le bot
- Vérifiez que le bot a les permissions
applications.commands
- Rechargez le message avec
/reload_help_message - Vérifiez que
role_helpest configuré dansconfig.json - Consultez les logs pour identifier les erreurs
Pour plus de solutions, consultez la section Troubleshooting de DOCUMENTATION.md.
Les logs sont stockés dans data/bot_logs.json et affichés en temps réel dans le terminal.
Niveaux de logs :
- 🔵
INFO- Informations générales - ✅
SUCCESS- Opérations réussies ⚠️ WARNING- Avertissements- ❌
ERROR- Erreurs
pm2 start bot.py --name bot-discord-zone01 --interpreter python3
pm2 save
pm2 startupdocker-compose up -dVoir DOCUMENTATION.md pour plus d'options de déploiement.
Les contributions sont les bienvenues ! Consultez DOCUMENTATION.md pour les guidelines.
En suivant les conventions de versionnement sémantique (SemVer) :
- MAJOR: version (X.y.z) pour les changements incompatibles de l'API
- MINOR: version (x.Y.z) pour les ajouts de fonctionnalités rétrocompatibles
- PATCH: version (x.y.Z) pour les corrections de bugs rétrocompatibles
Ce bot a été créé par Maxime Dubois pour Zone01 Rouen.
Ce projet est sous licence MIT. Pour plus de détails, consultez le fichier LICENSE.
- Consultez
DOCUMENTATION.md - Vérifiez les logs du bot
- Ouvrez une issue sur le dépôt
Développé avec ❤️ pour Zone01 Rouen Normandie