p="app.py"
src=open(p).read()
endpoint = '''
@app.route("/api/content/<content_id>/focus", methods=["GET", "POST"])
def api_content_focus(content_id):
"""MAS-IG-CO2-FOCUS Punkt 2: aktiven Datensatz auslesen.
GET liefert Kernthema, Unterthema, fachlichen MAS-Anker, erkannte
Hauptbegriffe, empfohlenen Themenfokus und aktuell gesetzten Fokus.
POST setzt den Themenfokus und/oder das Leitmotiv und stößt eine
Neuberechnung von Text/Medien an.
"""
from topic_focus import detect_recommended_focus, FOCUS_LABELS, FAMILY_AUTOMATISCH_MAPPING
item = get_content_item(content_id)
if not item:
return jsonify({"error": "Content nicht gefunden"}), 404
signal = {}
if item.get("signal_id"):
try:
con = sqlite3.connect(f"file:{RADAR_DB.as_posix()}?mode=ro", uri=True)
con.row_factory = sqlite3.Row
row = con.execute("SELECT * FROM signals WHERE signal_id=?", (item["signal_id"],)).fetchone()
con.close()
if row:
signal = dict(row)
except sqlite3.Error:
signal = {}
current_focus = (item.get("topic_focus") or "").strip() or "auto"
recommended = detect_recommended_focus(signal) or "auto"
if request.method == "POST":
data = request.get_json(silent=True) or {}
fields = {}
if "topic_focus" in data:
fields["topic_focus"] = str(data.get("topic_focus") or "auto")
if "leitmotiv" in data:
fields["leitmotiv"] = str(data.get("leitmotiv") or "")
if fields:
update_content_item(content_id, fields)
item = get_content_item(content_id) or item
current_focus = (item.get("topic_focus") or "").strip() or "auto"
return jsonify({
"content_id": content_id,
"kernthema": signal.get("topic") or item.get("title") or "",
"unterthema": signal.get("topic_de") or "",
"mas_anker": signal.get("mas_anchor") or "",
"hauptbegriffe": (signal.get("short_summary") or "").split(",")[:8],
"signal_category_db": signal.get("signal_category") or item.get("platform") or "",
"empfohlener_fokus": recommended,
"aktueller_fokus": current_focus,
"leitmotiv": item.get("leitmotiv") or "",
"fokus_options": FOCUS_LABELS,
})
'''
marker = "\nif __name__ == \"__main__\":\n"
idx = src.index(marker)
new_src = src[:idx] + endpoint + src[idx:]
open(p,"w").write(new_src)
print("app.py /focus endpoint added OK")