137 lines
3.7 KiB
Python
Executable File
137 lines
3.7 KiB
Python
Executable File
#!/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) |