Files
MamieHenriette/README.md

8.2 KiB
Executable File

MamieHenriette 👵

Bot multi-plateformes pour Discord, Twitch et YouTube Live

Table des matières

Vue d'ensemble

Mamie Henriette est un bot intelligent open-source développé spécifiquement pour la communauté de STEvE sur YouTube, Twitch et Discord.

⚠️ Statut : En cours de développement

Caractéristiques principales

  • Interface web d'administration complète
  • Gestion multi-plateformes (Discord opérationnel, Twitch intégré, YouTube Live en développement)
  • Système de notifications automatiques
  • Base de données intégrée pour la persistance
  • Surveillance optionnelle avec Zabbix (non testée)

Fonctionnalités

Discord

  • Statuts dynamiques : Rotation automatique des humeurs (10 min)
  • Notifications Humble Bundle : Surveillance et alertes automatiques (30 min)
  • Commandes personnalisées : Gestion via interface web
  • Recherche ProtonDB : Commande !protondb <nom_du_jeu> pour vérifier la compatibilité Linux/Steam Deck
  • Modération : Outils intégrés

Twitch

  • Chat bot : Commandes et interactions automatiques

YouTube Live (en développement)

  • Chat bot : Modération et commandes
  • Événements : Notifications de diffusion

Interface d'administration

  • Dashboard : Vue d'ensemble et statistiques
  • Configuration : Tokens, paramètres des plateformes, configuration ProtonDB
  • Gestion des humeurs : Création et modification des statuts
  • Commandes : Édition des commandes personnalisées
  • Modération : Outils de gestion communautaire

Surveillance

  • Zabbix Agent 2 : Monitoring avancé (non testé)
  • Métriques : Santé du bot et uptime

Installation

Prérequis

Création du bot Discord

Avant d'installer MamieHenriette, vous devez créer un bot Discord et obtenir son token :

  1. Accéder au portail développeur : Rendez-vous sur Discord Developer Portal

  2. Créer une nouvelle application :

    • Cliquez sur "New Application"
    • Donnez un nom à votre bot (ex: "MmeMichue")
    • Acceptez les conditions et cliquez sur "Create"
  3. Configurer le bot :

    • Dans le menu latéral, cliquez sur "Bot"
    • Ajoutez une photo de profil et un pseudo à votre bot
    • Important : activez les intents :
      • ☑️ Presence Intent
      • ☑️ Server Members Intent
      • ☑️ Message Content Intent
    • Cliquez sur "Save Changes"
  4. Récupérer le token :

    • Dans la section "Token", cliquez sur "Reset Token"
    • Copiez le token généré (gardez-le secret !)
  5. Inviter le bot sur votre serveur :

    • Allez dans "OAuth2" > "URL Generator"
    • Sélectionnez les scopes : bot et applications.commands
    • Sélectionnez les permissions nécessaires (Administrator recommandé pour simplifier)
    • Utilisez l'URL générée pour inviter le bot sur votre serveur

Démarrage rapide

# 1. Cloner le projet
git clone https://github.com/skylanix/MamieHenriette.git
cd MamieHenriette
# 2. Lancer avec Docker
docker compose up --build -d

⚠️ Important : Après configuration via l'interface web http://localhost:5000, redémarrez le conteneur pour que les changements soient pris en compte :

docker compose restart MamieHenriette

Commandes Docker utiles

# Logs en temps réel
docker compose logs -f MamieHenriette
# Logs d'un conteneur en cours d'exécution
docker logs -f MamieHenriette
# Redémarrer
docker compose restart MamieHenriette
# Arrêter
docker compose down

Mise à jour

Avec Docker (recommandé)

# 1. Arrêter les conteneurs
docker compose down

# 2. Récupérer les dernières modifications
git pull origin main

# 3. Mettre à jour l'image Docker
docker compose pull

# 4. Reconstruire et relancer
docker compose up --build -d

Sans Docker (installation locale)

# 1. Arrêter l'application
# (Ctrl+C si elle tourne en premier plan)

# 2. Récupérer les modifications
git pull origin main

# 3. Mettre à jour les dépendances
pip install -r requirements.txt

# 4. Relancer
python run-web.py

Architecture du projet

Interface d'administration

Section Fonction
Configurations Tokens Discord/Twitch, paramètres généraux et configuration ProtonDB
Humeurs Gestion des statuts Discord
Commandes Commandes personnalisées multi-plateformes
Messages Messages automatiques et notifications
Modération Outils de gestion communautaire

Structure des modules

├── database/          # Couche données
│   ├── models.py      # Modèles ORM
│   ├── helpers.py     # Utilitaires BDD
│   └── schema.sql     # Structure initiale
│
├── discordbot/        # Module Discord
│   └── __init__.py    # Bot et handlers
│
├── twitchbot/         # Module Twitch  
│   └── __init__.py    # Bot Twitch et handlers
│
├── protondb/          # Module ProtonDB
│   └── __init__.py    # API Algolia et recherche compatibilité
│
└── webapp/            # Interface d'administration
    ├── static/        # Assets statiques
    ├── templates/     # Vues HTML
    └── *.py           # Contrôleurs par section

Composants principaux

Fichier Rôle
run-web.py Point d'entrée principal
start.sh Script de démarrage Docker
docker-compose.yml Configuration des services
requirements.txt Dépendances Python

Spécifications techniques

Base de données (SQLite)

  • Configuration : Paramètres et tokens
  • Humeur : Statuts Discord rotatifs
  • Commande : Commandes personnalisées Discord/Twitch
  • GameAlias : Alias pour améliorer les recherches ProtonDB
  • GameBundle : Historique Humble Bundle
  • Message : Messages périodiques (structure définie, non implémenté)

Architecture multi-thread

  • Thread 1 : Interface web Flask (port 5000)
  • Thread 2 : Bot Discord et tâches automatisées
  • Thread 3 : Bot Twitch et gestion du chat

Dépendances principales

discord.py>=2.3.2         # API Discord
flask>=2.3.2              # Interface web
flask-sqlalchemy>=3.0.3   # ORM SQLAlchemy
requests>=2.32.4          # Client HTTP
waitress>=3.0.2           # Serveur WSGI
algoliasearch>=4          # API ProtonDB/SteamDB
twitchAPI>=4.5.0          # API Twitch
python-dotenv==1.0.0      # Variables d'environnement

Développement

Installation locale

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python run-web.py

Contribution

  1. Fork du projet
  2. Branche feature
  3. Pull Request

Mamie Henriette vous surveille ! 👵👀