| Crates.io | lekickerfou |
| lib.rs | lekickerfou |
| version | 1.0.0 |
| created_at | 2025-07-02 12:44:04.727637+00 |
| updated_at | 2025-07-02 12:44:04.727637+00 |
| description | Bot Discord pour déconnecter automatiquement les utilisateurs des salons vocaux |
| homepage | |
| repository | https://github.com/bourbask/LeKickerFou |
| max_upload_size | |
| id | 1735052 |
| size | 115,525 |
🔇 Bot Discord intelligent pour automatiser la déconnexion d'utilisateurs des salons vocaux selon un planning configurable.
Ce projet a migré de JavaScript vers Rust pour de meilleures performances et une meilleure fiabilité.
mainlegacy/javascriptTéléchargez la dernière version depuis les releases GitHub :
# Linux/macOS
curl -L https://github.com/bourbask/LeKickerFou/releases/latest/download/LeKickerFou-linux -o LeKickerFou
chmod +x LeKickerFou
# Windows
# Téléchargez LeKickerFou-windows.exe depuis les releases
# Cloner le repository
git clone https://github.com/bourbask/LeKickerFou.git
cd LeKickerFou
# Compiler en mode release
cargo build --release
# Le binaire sera disponible dans target/release/
# Construire l'image
docker build -t LeKickerFou .
# Lancer avec variables d'environnement
docker run -e DISCORD_TOKEN=votre_token LeKickerFou --channel 123456789
Le bot nécessite un token Discord. Plusieurs méthodes de configuration :
# Créer un fichier .env
echo "DISCORD_TOKEN=votre_token_discord" > .env
export DISCORD_TOKEN=votre_token_discord
DISCORD_TOKEN=votre_token_discord ./LeKickerFou --channel 123456789
botMove Members + View ChannelsLe bot nécessite les permissions Discord suivantes :
View Channels - Pour voir les salonsMove Members - Pour déconnecter les utilisateursSend Messages - Pour les logs (optionnel)# Configuration basique
./LeKickerFou --channel 123456789
# Configuration complète
./LeKickerFou --channel 123456789 --log-channel 987654321 --schedule "0 0 22 * * *"
# Export pour sauvegarde/partage
./LeKickerFou --export production.json
# Import d'une configuration
./LeKickerFou --import production.json
# Utilisation d'un fichier config personnalisé
./LeKickerFou --config-file my-config.json --channel 123456789
# Avec configuration existante
./LeKickerFou
# Aide complète
./LeKickerFou --help
Le bot utilise la syntaxe cron standard avec support des secondes :
Format : "seconde minute heure jour mois jour_semaine"
Exemples :
* * * * * * -> Chaque seconde
0 * * * * * -> Chaque minute (défaut)
*/30 * * * * * -> Toutes les 30 secondes
0 0 * * * * -> Chaque heure
0 0 22 * * * -> Tous les jours à 22h
0 0 18 * * 1-5 -> 18h en semaine uniquement
0 */15 9-17 * * 1-5 -> Toutes les 15 min, 9h-17h, en semaine
├── LeKickerFou # Binaire principal
├── .env # Token Discord (optionnel)
├── bot_config.json # Configuration automatique
├── production.json # Configuration exportée
└── logs/ # Logs (si configurés)
{
"voice_channel_id": "123456789012345678",
"log_channel_id": "987654321098765432",
"cron_schedule": "0 0 22 * * *"
}
Le bot affiche des logs colorés en temps réel :
ℹ️ [2024-01-15 14:30:00 UTC] Bot connecté sous MonBot (ID: 123456789)
ℹ️ [2024-01-15 14:30:00 UTC] Configuration: Canal vocal 123456789, Canal de log 987654321
ℹ️ [2024-01-15 14:30:01 UTC] Surveillance des salons vocaux démarrée (planning: 0 * * * * *)
ℹ️ [2024-01-15 14:31:00 UTC] 3 membre(s) détecté(s) dans le salon 'Réunion'
ℹ️ [2024-01-15 14:31:01 UTC] ✅ User#1234 déconnecté avec succès
ℹ️ [2024-01-15 14:31:01 UTC] ✅ User#5678 déconnecté avec succès
ℹ️ [2024-01-15 14:31:02 UTC] ✅ User#9012 déconnecté avec succès
ℹ️ [2024-01-15 14:31:02 UTC] 3 utilisateur(s) déconnecté(s)
Si configuré avec --log-channel, le bot envoie des notifications :
🔇 User#1234 déconnecté du salon 'Réunion'
🔇 User#5678 déconnecté du salon 'Réunion'
🔇 User#9012 déconnecté du salon 'Réunion'
Toutes les erreurs sont capturées et loggées sans interrompre le bot :
❌ [2024-01-15 14:31:00 UTC] Impossible de déconnecter User#1234: Missing Permissions
❌ [2024-01-15 14:31:01 UTC] Impossible d'envoyer le log Discord: Unknown Channel
# Prérequis : Rust 1.70+
rustup update
# Cloner et setup
git clone https://github.com/bourbask/LeKickerFou.git
cd LeKickerFou
# Installation des dépendances
cargo check
# Tests
cargo test
# Lancement en mode debug
cargo run -- --channel 123456789
0.12 - SDK Discord1.0 - Runtime async0.14 - Planificateur de tâches4.0 - Interface CLI1.0 - Gestion d'erreurs1.0 - Sérialisation JSONsrc/
├── main.rs # Point d'entrée et CLI
├── bot/
│ ├── mod.rs # Structure principale du bot
│ ├── events.rs # Gestionnaires d'événements
│ └── voice_manager.rs # Logique de déconnexion
├── config/
│ ├── mod.rs # Configuration et validation
│ └── cron.rs # Gestion des expressions cron
└── utils/
├── logging.rs # Système de logs
└── errors.rs # Erreurs personnalisées
# Tests unitaires
cargo test
# Tests d'intégration
cargo test --test integration
# Coverage
cargo tarpaulin --out Html
cargo fmtcargo clippycargo doc --opencargo auditgit checkout -b feature/ma-fonctionnalitegit commit -m "feat: ajouter ma fonctionnalité"git push origin feature/ma-fonctionnalitefeat: nouvelle fonctionnalité
fix: correction de bug
docs: documentation
style: formatage
refactor: refactoring
test: tests
chore: maintenance
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
⭐ Si ce projet vous a été utile, n'hésitez pas à lui donner une étoile ! ⭐
Fait avec ❤️ en Rust