Files
twitchBot-intelligent/demo_web_interface.py
T
2025-07-20 01:50:24 +02:00

224 lines
8.3 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Script de démonstration pour tester l'interface web du TwitchBot Controller
Génère des données de test pour montrer les fonctionnalités
"""
import json
import os
import time
import threading
from datetime import datetime
import random
def create_demo_data():
"""Créer des données de démonstration"""
# Créer les dossiers nécessaires
os.makedirs('working_bot/storage', exist_ok=True)
os.makedirs('config', exist_ok=True)
# Données de démonstration pour les sous-titres
demo_subtitles = {
"14h30m15s": "Salut les viewers ! Comment ça va aujourd'hui ?",
"14h31m22s": "On va jouer à ce nouveau jeu, j'ai hâte de voir ce que ça donne",
"14h32m45s": "Oh non, je suis mort déjà ! C'est plus dur que je pensais",
"14h33m12s": "Merci pour le follow @nouveau_viewer !",
"14h34m30s": "Cette partie est vraiment intense, regardez ça !",
"14h35m18s": "Je pense qu'on devrait essayer une autre stratégie",
"14h36m05s": "Excellent, on progresse enfin dans ce niveau",
"14h37m22s": "N'hésitez pas à poser vos questions dans le chat"
}
# Données de démonstration pour les générations IA
demo_generations = {
"14h30m20s": "Salut ! Ça va super bien merci ! 😊",
"14h31m28s": "Ce jeu a l'air génial, bonne chance !",
"14h32m50s": "Ça arrive aux meilleurs, tu vas y arriver !",
"14h33m15s": "Bienvenue dans la communauté ! 🎉",
"14h34m35s": "Waouh cette action était épique ! 🔥",
"14h35m25s": "Bonne idée, change de tactique !",
"14h36m10s": "Bravo ! Tu maîtrises de mieux en mieux",
"14h37m28s": "Toujours là pour aider ! 💪"
}
# Sauvegarder les données de démonstration
with open('working_bot/storage/subtitle_data.json', 'w', encoding='utf-8') as f:
json.dump(demo_subtitles, f, indent=4, ensure_ascii=False)
with open('working_bot/storage/IA_generator.json', 'w', encoding='utf-8') as f:
json.dump(demo_generations, f, indent=4, ensure_ascii=False)
print("✅ Données de démonstration créées")
def create_demo_config():
"""Créer une configuration de démonstration"""
demo_config = {
"twitchname": "demo_streamer",
"recordtime": 60,
"threads": 1,
"language": "fr",
"max_flux_lifetime": 3600,
"active_flux": [
{
"id": 1,
"name": "demo_streamer",
"twitchname": "demo_streamer",
"quantity": 1,
"lifetime": 3600,
"created_at": datetime.now().isoformat(),
"active": True
}
],
"list_prompt": [
"Réponds en 8 mots max avec humour : ",
"Réagis comme un viewer twitch en 6 mots : ",
"Commentaire de live en 7 mots drôle : ",
"Réponse sarcastique en 5 mots : ",
"Blague rapide en 6 mots : ",
"Commentaire décalé en 7 mots : ",
"Réponse ironique en 6 mots : ",
"Réponse punchy en 7 mots : ",
"Réaction wtf en 5 mots : ",
"Commentaire troll en 7 mots : "
],
"bad_answer": [
"suis un assistant",
"Je ne comprends pas.",
"pas un humain",
"je suis désolé"
]
}
demo_user = [
{
"tw_acc_pseudo": "demo_bot_1",
"tw_acc_token": "oauth:demo_token_1",
"charactere": "😊"
},
{
"tw_acc_pseudo": "demo_bot_2",
"tw_acc_token": "oauth:demo_token_2",
"charactere": "🤖"
}
]
# Sauvegarder les configurations
with open('config/config.json', 'w', encoding='utf-8') as f:
json.dump(demo_config, f, indent=4, ensure_ascii=False)
with open('config/user.json', 'w', encoding='utf-8') as f:
json.dump(demo_user, f, indent=4, ensure_ascii=False)
print("✅ Configuration de démonstration créée")
def simulate_live_updates():
"""Simuler des mises à jour en temps réel"""
def update_data():
while True:
try:
# Simuler un nouveau sous-titre
current_time = datetime.now().strftime("%Hh%Mm%Ss")
demo_messages = [
"Cette partie devient vraiment intéressante !",
"Merci pour tous vos messages dans le chat !",
"Je vais essayer cette nouvelle technique",
"Waouh, je ne m'attendais pas à ça !",
"Vous avez vu cette action incroyable ?",
"On approche du boss final !",
"N'oubliez pas de follow si vous aimez le contenu",
"Cette musique de fond est parfaite"
]
demo_responses = [
"C'est parti pour l'action ! 🎮",
"Toujours un plaisir de vous lire ! 💬",
"Bonne stratégie, ça va marcher ! 👍",
"Plot twist inattendu ! 😮",
"Action de malade ! 🔥",
"Le boss va trembler ! 💪",
"Contenu de qualité garanti ! ⭐",
"Parfait pour l'ambiance ! 🎵"
]
# Charger les données existantes
try:
with open('working_bot/storage/subtitle_data.json', 'r', encoding='utf-8') as f:
subtitles = json.load(f)
with open('working_bot/storage/IA_generator.json', 'r', encoding='utf-8') as f:
generations = json.load(f)
except:
subtitles = {}
generations = {}
# Ajouter de nouvelles données
new_message = random.choice(demo_messages)
new_response = random.choice(demo_responses)
subtitles[current_time] = new_message
generations[current_time] = new_response
# Limiter à 20 entrées maximum
if len(subtitles) > 20:
oldest_key = min(subtitles.keys())
del subtitles[oldest_key]
del generations[oldest_key]
# Sauvegarder
with open('working_bot/storage/subtitle_data.json', 'w', encoding='utf-8') as f:
json.dump(subtitles, f, indent=4, ensure_ascii=False)
with open('working_bot/storage/IA_generator.json', 'w', encoding='utf-8') as f:
json.dump(generations, f, indent=4, ensure_ascii=False)
print(f"🔄 Mise à jour simulée: {current_time}")
except Exception as e:
print(f"❌ Erreur lors de la simulation: {e}")
# Attendre entre 30 secondes et 2 minutes
time.sleep(random.randint(30, 120))
# Démarrer la simulation dans un thread
update_thread = threading.Thread(target=update_data, daemon=True)
update_thread.start()
print("🎭 Simulation des mises à jour en temps réel démarrée")
def main():
print("🎬 TwitchBot Controller - Mode Démonstration")
print("=" * 50)
# Créer les données et configuration de démonstration
create_demo_data()
create_demo_config()
# Démarrer la simulation des mises à jour
simulate_live_updates()
print("\n🚀 Démarrage de l'interface web en mode démonstration...")
print("📍 Les données de test sont générées automatiquement")
print("🔄 De nouvelles données apparaîtront toutes les 30s-2min")
print("=" * 50)
# Importer et démarrer l'interface web
try:
from web_interface import app, socketio
socketio.run(
app,
host='0.0.0.0',
port=5000,
debug=False
)
except KeyboardInterrupt:
print("\n🛑 Arrêt de la démonstration...")
except Exception as e:
print(f"❌ Erreur: {e}")
if __name__ == '__main__':
main()