Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 5m5s
130 lines
3.4 KiB
Markdown
130 lines
3.4 KiB
Markdown
# 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 <url_repository>
|
|
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
|
|
|
|
|