(media_id, frame_name)
| 21655 | |
| 21656 | @app.route('/api/media/frame/<media_id>/<frame_name>', methods=['GET']) |
| 21657 | def api_media_frame(media_id, frame_name): |
| 21658 | denied = require_authenticated_download("media_frame", limit=120, window=60) |
| 21659 | if denied: |
| 21660 | return denied |
| 21661 | entry = MEDIA_EXPORTS.get(media_id) |
| 21662 | if not entry: |
| 21663 | return "Frame non trovato", 404 |
| 21664 | frame_dir = entry.get("frame_dir") |
| 21665 | if not frame_dir: |
| 21666 | return "Frame non disponibile", 404 |
| 21667 | fp = Path(frame_dir) / Path(frame_name).name |
| 21668 | if not fp.exists(): |
| 21669 | return "Frame non trovato", 404 |
| 21670 | return send_file(str(fp), mimetype="image/jpeg") |
| 21671 | |
| 21672 | def _sanitize_watch_media_upload_name(name): |
| 21673 | return re.sub(r"[^A-Za-z0-9._-]", "_", Path(name).name).strip("._-") or "upload" |
nothing calls this directly
no test coverage detected