#!/usr/bin/env python3 """ Script de démarrage amélioré pour TwitchBot Controller Utilise l'architecture centralisée avec contrôle depuis l'interface web """ import os import sys import subprocess import time from datetime import datetime def print_banner(): """Afficher la bannière de démarrage""" print("🤖 TwitchBot Controller - Interface Web") print("=" * 50) print("✓ Architecture centralisée") print("✓ Contrôle depuis l'interface web") print("✓ Gestion des composants modulaire") print("=" * 50) def check_dependencies(): """Vérifier les dépendances requises""" print("🔧 Vérification des dépendances...") required_packages = [ 'flask', 'flask-socketio', 'requests', 'pytmi' ] missing_packages = [] for package in required_packages: try: __import__(package.replace('-', '_')) print(f"✓ {package}") except ImportError: missing_packages.append(package) print(f"✗ {package} - MANQUANT") if missing_packages: print(f"\n❌ Dépendances manquantes: {', '.join(missing_packages)}") print("💡 Installez-les avec: pip install " + " ".join(missing_packages)) return False print("✅ Toutes les dépendances sont installées") return True def check_config_files(): """Vérifier les fichiers de configuration""" print("\n📁 Vérification des fichiers de configuration...") required_files = [ 'config/config.json', 'config/user.json' ] missing_files = [] for file_path in required_files: if os.path.exists(file_path): print(f"✓ {file_path}") else: missing_files.append(file_path) print(f"✗ {file_path} - MANQUANT") if missing_files: print(f"\n⚠️ Fichiers de configuration manquants: {', '.join(missing_files)}") print("💡 Créez ces fichiers avant de continuer") return False print("✅ Tous les fichiers de configuration sont présents") return True def create_directories(): """Créer les répertoires nécessaires""" print("\n📂 Création des répertoires...") directories = [ 'storage', 'record', 'in_record' ] for directory in directories: if not os.path.exists(directory): os.makedirs(directory) print(f"✓ Créé: {directory}") else: print(f"✓ Existe: {directory}") def start_web_interface(): """Démarrer l'interface web""" print("\n🚀 Démarrage de l'interface web...") print("📍 Adresse: http://0.0.0.0:5000") print("🔧 Utilisez Ctrl+C pour arrêter le serveur") print("=" * 50) try: # Importer et démarrer l'interface web from web_interface import app, socketio # Démarrer le serveur socketio.run(app, host='0.0.0.0', port=5000, debug=False) except KeyboardInterrupt: print("\n🛑 Arrêt demandé par l'utilisateur") except Exception as e: print(f"\n❌ Erreur lors du démarrage: {e}") return False return True def main(): """Fonction principale""" print_banner() # Vérifier les dépendances if not check_dependencies(): return False # Vérifier les fichiers de configuration if not check_config_files(): return False # Créer les répertoires nécessaires create_directories() # Démarrer l'interface web return start_web_interface() if __name__ == "__main__": success = main() if not success: sys.exit(1)