Explorer
/tmp/add_variant_routes.py
← Zurück ↓ Download
from pathlib import Path
p=Path('/opt/struktur/social-media-agent/app.py'); s=p.read_text()
old='from publish_ready import get_packages, decide_package, generate_package_image, valid_package_image_path, image_download_name'
new='from publish_ready import get_packages, decide_package, generate_package_image, valid_package_image_path, image_download_name, select_package_variant'
assert s.count(old)==1; s=s.replace(old,new)
needle='''@app.route("/publication-packages/<package_id>/decision", methods=["POST"])'''
routes='''@app.route("/bereit/<package_id>/varianten/<variant_id>/auswaehlen", methods=["POST"])
def package_variant_select(package_id, variant_id):
    try:
        select_package_variant(package_id, variant_id, selected_by="human", override_reason=request.form.get("reason", ""))
    except ValueError:
        pass
    return redirect(url_for("ready_packages"))


@app.route("/bereit/<package_id>/varianten/<variant_id>/download")
def package_variant_download(package_id, variant_id):
    packages = get_packages(limit=500)
    package = next((p for p in packages if p.get("package_id") == package_id), None)
    variant = next((v for v in (package or {}).get("variants", []) if v.get("variant_id") == variant_id), None)
    path = Path(variant.get("image_path", "")).resolve() if variant else None
    if not path or not path.is_file():
        abort(404)
    return send_file(path, as_attachment=True, download_name=f"{package_id}-{variant_id}.png", conditional=False)


@app.route("/bereit/<package_id>/varianten/<variant_id>/bild")
def package_variant_preview(package_id, variant_id):
    packages = get_packages(limit=500)
    package = next((p for p in packages if p.get("package_id") == package_id), None)
    variant = next((v for v in (package or {}).get("variants", []) if v.get("variant_id") == variant_id), None)
    path = Path(variant.get("image_path", "")).resolve() if variant else None
    if not path or not path.is_file():
        abort(404)
    return send_file(path, conditional=False)


'''
assert s.count(needle)==1; s=s.replace(needle,routes+needle)
p.write_text(s); print('variant routes added')