# 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


