#!/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()