From cbadf096fda1f9483d3967926968574547bc96e6 Mon Sep 17 00:00:00 2001 From: Erik Thiele Date: Tue, 8 Sep 2026 09:09:37 +0200 Subject: [PATCH] fix: Loeschen entfernt auch den Playlist-Eintrag der Datei Der Filter in delete_file verglich nur item["url"], traf damit aber nur URL-Eintraege. Bei Dateien wurde die Datei vom Datentraeger geloescht, der Eintrag {"name": ...} blieb als Karteileiche in der config.json stehen - in der Priority-Playlist wie in jeder Screen-Playlist. Vergleich laeuft jetzt ueber playlist_item_name(), das alle drei Eintragsformen abdeckt. Co-Authored-By: Claude Opus 5 --- app.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/app.py b/app.py index e87e25f..08c9738 100755 --- a/app.py +++ b/app.py @@ -1878,18 +1878,15 @@ def delete_file(site, screen, filename): if screen == "priority": path = os.path.join(priority_dir(site), filename) playlist = get_priority_config(cfg, site).get("playlist", []) - playlist[:] = [item for item in playlist if not ( - (isinstance(item, str) and item == filename) or - (isinstance(item, dict) and item.get("url") == filename) - )] else: path = os.path.join(MEDIA_DIR, site, screen, filename) screens_cfg = cfg.get("sites", {}).get(site, {}).get("screens", {}) playlist = screens_cfg.get(screen, {}).get("playlist", []) - playlist[:] = [item for item in playlist if not ( - (isinstance(item, str) and item == filename) or - (isinstance(item, dict) and item.get("url") == filename) - )] + + # Ueber playlist_item_name vergleichen: Datei-Eintraege stehen als + # {"name": ...}, URLs als {"url": ...}, Altbestand als reiner String. + playlist[:] = [item for item in playlist + if playlist_item_name(item) != filename] if os.path.exists(path): os.remove(path)