74 lines
2.0 KiB
Python
74 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test de la capture d'événements
|
|
"""
|
|
|
|
import sys
|
|
import time
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent / "geniusia2"))
|
|
|
|
from core.event_capture import EventCapture
|
|
from core.logger import Logger
|
|
|
|
def test_event_capture():
|
|
"""Test de la capture d'événements."""
|
|
print("=" * 60)
|
|
print("Test de Capture d'Événements")
|
|
print("=" * 60)
|
|
print()
|
|
|
|
logger = Logger()
|
|
capture = EventCapture(logger=logger, pattern_threshold=3)
|
|
|
|
def on_pattern(pattern):
|
|
print(f"\n🎯 PATTERN DÉTECTÉ !")
|
|
print(f" Répétitions: {pattern['repetitions']}")
|
|
print(f" Longueur: {pattern['length']}")
|
|
print(f" Fenêtre: {pattern['window']}")
|
|
|
|
capture.register_pattern_callback(on_pattern)
|
|
|
|
print("1. Démarrage de la capture...")
|
|
if capture.start():
|
|
print(" ✓ Capture démarrée")
|
|
else:
|
|
print(" ✗ Échec du démarrage")
|
|
return False
|
|
|
|
print("\n2. Effectuez des actions répétitives (clics, frappes)...")
|
|
print(" Le test s'arrêtera dans 30 secondes")
|
|
print()
|
|
|
|
try:
|
|
for i in range(30):
|
|
time.sleep(1)
|
|
events = capture.get_recent_events(5)
|
|
if events:
|
|
print(f"\r Événements capturés: {len(capture.events)}", end="", flush=True)
|
|
except KeyboardInterrupt:
|
|
print("\n\n⏹️ Arrêt demandé")
|
|
|
|
print("\n\n3. Arrêt de la capture...")
|
|
capture.stop()
|
|
print(" ✓ Capture arrêtée")
|
|
|
|
print(f"\n4. Résumé:")
|
|
print(f" Total d'événements: {len(capture.events)}")
|
|
|
|
recent = capture.get_recent_events(10)
|
|
if recent:
|
|
print(f"\n Derniers événements:")
|
|
for e in recent[-5:]:
|
|
print(f" - {e['type']} à {e['timestamp'].strftime('%H:%M:%S')}")
|
|
|
|
print("\n" + "=" * 60)
|
|
print("✓ Test terminé")
|
|
print("=" * 60)
|
|
return True
|
|
|
|
if __name__ == "__main__":
|
|
success = test_event_capture()
|
|
sys.exit(0 if success else 1)
|