"""AA-045-F4: Neuklassifizierung aktueller Signale mit dem gefixten Classifier.
Nur Signale des aktuellen Zeitraums; bestehende Briefings bleiben erhalten."""
import sys
sys.path.insert(0, "/opt/struktur/social-media-radar")
import sqlite3
conn = sqlite3.connect("/var/lib/sma-data/signals.db")
conn.row_factory = sqlite3.Row
from classification.signal_classifier import score_signal
rows = conn.execute("""
SELECT * FROM signals WHERE created_at > '2026-08-16'""").fetchall()
print("zu pruefen:", len(rows))
changes = []
for r in rows:
sig = dict(r)
text = f"{sig['topic'] or ''} {sig['short_summary'] or ''}"
lang = sig["language"] or "de"
sd = score_signal(text, language=lang)
if sd["signal_category"] != sig["signal_category"]:
changes.append((sig["signal_id"], sig["signal_category"], sd["signal_category"], (sig["topic"] or "")[:50]))
conn.execute("UPDATE signals SET signal_category=? WHERE signal_id=?",
(sd["signal_category"], sig["signal_id"]))
conn.commit()
print(f"\nNeu klassifiziert: {len(changes)}")
for sid, alt, neu, topic in changes:
print(f" {alt:>18} -> {neu:<18} | {topic}")