Explorer
/proc/127/root/tmp/aa045f5_backfill2.py
← Zurück ↓ Download
"""AA-045-F5: Watch-Signale nachfuellen (robust gegen String-Breakdown)."""
import sys, json
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
rows = conn.execute("""SELECT signal_id, score_breakdown FROM signals
    WHERE source_type='watch_entity' AND COALESCE(watch_entity_id,'')=''""").fetchall()
n = 0
for r in rows:
    raw = r["score_breakdown"]
    bd = None
    try:
        parsed = json.loads(raw or "{}")
        if isinstance(parsed, dict):
            bd = parsed
    except Exception:
        pass
    if not bd:
        continue
    if bd.get("watch_entity"):
        conn.execute("UPDATE signals SET watch_entity_id=?, watch_sector=?, watch_priority=? WHERE signal_id=?",
                     (bd["watch_entity"], str(bd.get("sector","")), str(bd.get("priority","")), r["signal_id"]))
        n += 1
conn.commit()
print("nachgefuellt:", n)
for r in conn.execute("SELECT watch_entity_id, watch_sector FROM signals WHERE source_type='watch_entity' LIMIT 5"):
    print(dict(r))