mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-06 14:50:34 +01:00
85f576f611105728a6db9e5e9657eb49bc7ae9cb
MamieHenriette 👵
Bot multi-plateformes pour Discord, Twitch et YouTube Live
Table des matières
- Vue d'ensemble
- Fonctionnalités
- Installation
- Architecture du projet
- Spécifications techniques
- Développement
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
- Docker Engine ou Docker Desktop
- Token Discord pour le bot
- Token Twitch (optionnel) pour les fonctionnalités Twitch
Création du bot Discord
Avant d'installer MamieHenriette, vous devez créer un bot Discord et obtenir son token :
-
Accéder au portail développeur : Rendez-vous sur Discord Developer Portal
-
Créer une nouvelle application :
- Cliquez sur "New Application"
- Donnez un nom à votre bot (ex: "MmeMichue")
- Acceptez les conditions et cliquez sur "Create"
-
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"
-
Récupérer le token :
- Dans la section "Token", cliquez sur "Reset Token"
- Copiez le token généré (gardez-le secret !)
-
Inviter le bot sur votre serveur :
- Allez dans "OAuth2" > "URL Generator"
- Sélectionnez les scopes :
botetapplications.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
- Fork du projet
- Branche feature
- Pull Request
Mamie Henriette vous surveille ! 👵👀
Languages
Python
53.3%
HTML
46.1%
Dockerfile
0.5%
Shell
0.1%