From 9889b2df766ef7c0b959c0dd32f80b69c8b050f8 Mon Sep 17 00:00:00 2001 From: cursor-agent Date: Mon, 20 Apr 2026 19:21:54 +0200 Subject: [PATCH] fix(savetv): /api/filelist returns dict {files,count} as documented and expected by Jellyfin-Server sync client --- homelab-ai-bot/savetv_extra_routes.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/homelab-ai-bot/savetv_extra_routes.py b/homelab-ai-bot/savetv_extra_routes.py index d3915a0e..182fc3eb 100644 --- a/homelab-ai-bot/savetv_extra_routes.py +++ b/homelab-ai-bot/savetv_extra_routes.py @@ -183,6 +183,29 @@ def register_extra_routes(app, progress_lock=None, load_progress_raw=None, save_ except Exception: pass + @app.route("/api/filelist") + def api_filelist(): + """MP4-Dateinamen in /mnt/savetv die noch nicht ans NAS uebertragen sind. + Sortiert nach mtime (aelteste zuerst). Der Sync-Client filtert selbst + nach Alter/Jitter.""" + done = _load_nas_done() + entries = [] + try: + for fp in SAVETV_DIR.iterdir(): + if fp.suffix != ".mp4": + continue + if fp.name in done: + continue + try: + entries.append((fp.stat().st_mtime, fp.name)) + except OSError: + continue + entries.sort() + except Exception: + pass + _files = [name for _, name in entries] + return jsonify({"files": _files, "count": len(_files)}) + @app.route("/api/nas_synced", methods=["POST"]) def api_nas_synced(): data = request.get_json(silent=True) or {}