140 lines
4.8 KiB
Python
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() |