Reviewed-on: #16
Bot Tamiseur
Bot Discord multifonction développé en TypeScript pour la musique, les notifications Twitch et l'intégration avec diverses infrastructures.
Fonctionnalités
🎵 Lecteur de musique
- Lecture de musique depuis diverses sources (YouTube, Spotify, etc.)
- Gestion de file d'attente
- Mode disco avec sauvegarde automatique
- Contrôles avancés (boucle, mélange, volume)
📺 Notifications Twitch
- Notifications automatiques de streams en direct
- Intégration EventSub avec Twurple
- Gestion multi-streamers
🔧 Intégrations infrastructure
- AMP: Gestion des instances de serveurs de jeu
- Freebox: Intégration avec l'API Freebox
- Crack: Fonctionnalités spécifiques pour SalonPostam
Installation
Prérequis
- Node.js 22+
- MongoDB
- Compte Discord Developer
- Compte Twitch Developer (optionnel)
Configuration
- Cloner le repository :
git clone <url_repository>
cd bot_Tamiseur
- Installer les dépendances :
npm install
- Configurer les variables d'environnement :
cp .env.example .env
# Éditer le fichier .env avec vos valeurs
Variables d'environnement requises
Voir le fichier .env.example pour la liste complète des variables.
Variables essentielles :
DISCORD_APP_IDetDISCORD_TOKEN: Configuration DiscordMONGOOSE_*: Configuration base de données MongoDB
Variables optionnelles :
TWITCH_*: Pour les notifications TwitchNGROK_AUTHTOKEN: Pour le développement avec webhooks TwitchDEFAULT_LOCALE: Locale par défaut (défaut:fr)CONSOLE_LOCALE: Locale pour les logs console (défaut:en)
Utilisation
Développement
npm run dev
Production
npm run build
npm run start:prod
Scripts disponibles
npm run dev: Démarrage en mode développement avec watchnpm run build: Build de productionnpm run start:prod: Démarrage en productionnpm run lint: Vérification du codenpm run lint:fix: Correction automatique des erreurs de linting
Architecture
Le projet suit une architecture modulaire TypeScript :
/src/commands/: Commandes slash Discord organisées par catégories/src/events/: Gestionnaires d'événements (Discord, MongoDB, Player)/src/buttons/et/src/selectmenus/: Interactions utilisateur/src/utils/: Modules utilitaires (player, twitch, amp, freebox)/src/types/: Définitions TypeScript/src/schemas/: Schémas MongoDB
Déploiement
Le projet inclut des configurations Docker et Helm pour le déploiement en Kubernetes :
# Build et tag pour déploiement
make tag-build
make tag-deploy
Développement
Le code suit les conventions définies dans .github/copilot-instructions.md :
- Variables en anglais, commentaires en français
- Code optimisé et lisible
- Architecture modulaire stricte
Internationalisation
Le bot supporte plusieurs langues via le système i18n :
Fonctions de traduction :
t(locale, key, params): Traduction basée sur la locale utilisateurfr(key, params): Traduction en françaisen(key, params): Traduction en anglais
Configuration des locales :
DEFAULT_LOCALE: Locale par défaut pour les utilisateursCONSOLE_LOCALE: Locale pour les messages de logs console
Fichiers de traduction :
/src/locales/fr.json: Traductions françaises/src/locales/en.json: Traductions anglaises
Description
Languages
TypeScript
99%
Dockerfile
0.4%
JavaScript
0.3%
Makefile
0.3%