mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-06 14:50:34 +01:00
607b59abd679f0c0d1ce4c141e3c997b94ceabc4
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
- Licence
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
Licence
MamieHenriette - Bot multi-plateformes pour Discord, Twitch et YouTube Live
Copyright (C) 2025 Philippe Favre
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier
selon les termes de la Licence Publique Générale GNU Affero telle que publiée
par la Free Software Foundation, soit la version 3 de la Licence, ou
(à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile,
mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
COMMERCIALISATION ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la
Licence Publique Générale GNU Affero pour plus de détails.
Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero
avec ce programme. Si ce n'est pas le cas, voir <https://www.gnu.org/licenses/>.
Mamie Henriette vous surveille ! 👵👀
Languages
Python
53.3%
HTML
46.1%
Dockerfile
0.5%
Shell
0.1%