Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 6m16s
3.4 KiB
Executable File
3.4 KiB
Executable File
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