from pathlib import Path
p=Path('/opt/struktur/social-media-radar/content_director.py'); s=p.read_text()
if 'from mas_relevance import assess_mas_relevance' not in s: s=s.replace('from sma_database import SIGNALS_DB_PATH\n','from sma_database import SIGNALS_DB_PATH\nfrom mas_relevance import assess_mas_relevance\n')
s=s.replace(''' signal_id = sig["signal_id"]
category = sig["signal_category"] or "allgemein"''',''' signal_id = sig["signal_id"]
relevance = assess_mas_relevance(" ".join(str(sig.get(k) or "") for k in ("topic", "short_summary", "source_name")), fields=sig)
if not relevance.relevant:
return {"director_score": 0.0, "director_action": "ignorieren", "director_reason": relevance.reason or "Kein fachlicher MAS-Anker", "director_blocks": relevance.block_reason or "Nicht für MAS-Content geeignet", "director_dims": "MAS-Relevanz=0", "relevance_score": 0.0, "emotional_score_dir": 0.0, "urgency_score_dir": 0.0, "publishing_value": 0.0, "seasonal_factor": 1.0, "mas_relevant": 0, "mas_anchor": "", "mas_relevance_reason": relevance.reason, "content_blocked": int(relevance.content_blocked), "content_block_reason": relevance.block_reason}
category = sig["signal_category"] or "allgemein"''')
s=s.replace(''' "seasonal_factor": seasonal_factor,
}''',''' "seasonal_factor": seasonal_factor,
"mas_relevant": 1, "mas_anchor": ",".join(relevance.anchor_matches), "mas_relevance_reason": relevance.reason,
"content_blocked": 0, "content_block_reason": "",
}''')
s=s.replace(''' "seasonal_factor": "REAL DEFAULT 1.0",
}''',''' "seasonal_factor": "REAL DEFAULT 1.0",
"mas_relevant": "INTEGER DEFAULT 0", "mas_anchor": "TEXT DEFAULT ''", "mas_relevance_reason": "TEXT DEFAULT ''", "content_blocked": "INTEGER DEFAULT 0", "content_block_reason": "TEXT DEFAULT ''",
}''')
s=s.replace(''' seasonal_factor = ?
WHERE signal_id = ?''',''' seasonal_factor = ?, mas_relevant = ?, mas_anchor = ?, mas_relevance_reason = ?, content_blocked = ?, content_block_reason = ?
WHERE signal_id = ?''')
s=s.replace(''' result["seasonal_factor"],
sig["signal_id"],''',''' result["seasonal_factor"], result.get("mas_relevant", 0), result.get("mas_anchor", ""), result.get("mas_relevance_reason", ""), result.get("content_blocked", 0), result.get("content_block_reason", ""),
sig["signal_id"],''')
p.write_text(s); print('director patched')