# 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 1. Cloner le repository : ```bash git clone cd bot_Tamiseur ``` 2. Installer les dépendances : ```bash npm install ``` 3. Configurer les variables d'environnement : ```bash 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_ID` et `DISCORD_TOKEN` : Configuration Discord - `MONGOOSE_*` : Configuration base de données MongoDB **Variables optionnelles :** - `TWITCH_*` : Pour les notifications Twitch - `NGROK_AUTHTOKEN` : Pour le développement avec webhooks Twitch - `DEFAULT_LOCALE` : Locale par défaut (défaut: `fr`) - `CONSOLE_LOCALE` : Locale pour les logs console (défaut: `en`) ## Utilisation ### Développement ```bash npm run dev ``` ### Production ```bash npm run build npm run start:prod ``` ### Scripts disponibles - `npm run dev` : Démarrage en mode développement avec watch - `npm run build` : Build de production - `npm run start:prod` : Démarrage en production - `npm run lint` : Vérification du code - `npm 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 : ```bash # 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 utilisateur - `fr(key, params)` : Traduction en français - `en(key, params)` : Traduction en anglais **Configuration des locales :** - `DEFAULT_LOCALE` : Locale par défaut pour les utilisateurs - `CONSOLE_LOCALE` : Locale pour les messages de logs console **Fichiers de traduction :** - `/src/locales/fr.json` : Traductions françaises - `/src/locales/en.json` : Traductions anglaises