Files
twitchBot-intelligent/diagnostic_auto_message.py
T

140 lines
4.8 KiB
Python

#!/usr/bin/env python3
"""
Script de diagnostic pour l'envoi automatique de messages
"""
import os
import json
import requests
from datetime import datetime
def check_server_status():
"""Vérifier le statut du serveur web"""
try:
response = requests.get('http://localhost:5000/api/messages/auto/status', timeout=5)
if response.status_code == 200:
status = response.json()
print(f"✅ Serveur web accessible")
print(f"📊 Statut envoi automatique: {'Actif' if status['running'] else 'Arrêté'}")
return status['running']
else:
print(f"❌ Erreur serveur: {response.status_code}")
return None
except requests.exceptions.ConnectionError:
print("❌ Serveur web non accessible")
return None
except Exception as e:
print(f"❌ Erreur: {e}")
return None
def force_stop_auto_message():
"""Forcer l'arrêt de l'envoi automatique"""
try:
response = requests.post('http://localhost:5000/api/messages/auto/force-stop', timeout=5)
if response.status_code == 200:
result = response.json()
if result['success']:
print("✅ Arrêt forcé réussi")
return True
else:
print(f"❌ Erreur: {result['error']}")
return False
else:
print(f"❌ Erreur serveur: {response.status_code}")
return False
except Exception as e:
print(f"❌ Erreur: {e}")
return False
def check_generations():
"""Vérifier les générations disponibles"""
storage_dir = "storage"
generation_file = os.path.join(storage_dir, "IA_generator.json")
if os.path.exists(generation_file):
try:
with open(generation_file, 'r', encoding='utf-8') as f:
generation_data = json.load(f)
print(f"📝 {len(generation_data)} génération(s) disponible(s)")
if generation_data:
sorted_keys = sorted(generation_data.keys())
last_generation = generation_data[sorted_keys[-1]]
print(f"📝 Dernière génération: {last_generation}")
return len(generation_data)
except Exception as e:
print(f"⚠️ Erreur lecture générations: {e}")
else:
print("📝 Aucune génération disponible")
return 0
def check_users():
"""Vérifier les utilisateurs configurés"""
user_config = "config/user.json"
if os.path.exists(user_config):
try:
with open(user_config, 'r') as f:
users = json.load(f)
print(f"👥 {len(users)} utilisateur(s) configuré(s)")
return len(users)
except Exception as e:
print(f"⚠️ Erreur lecture utilisateurs: {e}")
else:
print("❌ Fichier de configuration utilisateur non trouvé")
return 0
def main():
"""Diagnostic principal"""
print("🔍 Diagnostic de l'envoi automatique de messages")
print("=" * 60)
# 1. Vérifier le serveur
print("\n🌐 Vérification du serveur web...")
server_running = check_server_status()
# 2. Vérifier les générations
print("\n📝 Vérification des générations...")
generations_count = check_generations()
# 3. Vérifier les utilisateurs
print("\n👥 Vérification des utilisateurs...")
users_count = check_users()
# 4. Diagnostic et solutions
print("\n🔧 Diagnostic et solutions:")
print("=" * 40)
if server_running is None:
print("❌ Problème: Serveur web non accessible")
print("💡 Solution: Démarrer le serveur avec 'python web_interface.py'")
return
if server_running:
print("⚠️ Problème: L'envoi automatique est actif mais le bouton est désactivé")
print("💡 Solution: Utiliser le bouton 'Force Stop' dans l'interface")
# Proposer d'arrêter automatiquement
print("\n🛑 Arrêt automatique de l'envoi...")
if force_stop_auto_message():
print("✅ Envoi automatique arrêté avec succès")
else:
print("❌ Échec de l'arrêt automatique")
else:
print("✅ Envoi automatique correctement arrêté")
if generations_count == 0:
print("⚠️ Aucune génération disponible pour l'envoi")
print("💡 Solution: Créer des générations IA d'abord")
if users_count == 0:
print("❌ Aucun utilisateur configuré")
print("💡 Solution: Configurer des utilisateurs dans l'interface")
print("\n" + "=" * 60)
print("✅ Diagnostic terminé")
print("💡 Vérifiez l'interface web pour confirmer l'état")
if __name__ == '__main__':
main()