diff --git a/dashboard.html b/dashboard.html index 04445c3..f33c014 100644 --- a/dashboard.html +++ b/dashboard.html @@ -939,7 +939,10 @@ renderJellyfinStatus(payload); const action = payload.published ? "published" : payload.changed ? "updated library" : "no changes"; renderMediaChanges(payload.changes); - setJellyfinMessage(`Synced ${payload.movieCount} movies and ${payload.showCount} shows; ${action}.`); + const scope = Array.isArray(payload.libraryNames) && payload.libraryNames.length + ? ` from ${payload.libraryNames.join(", ")}` + : ""; + setJellyfinMessage(`Synced ${payload.movieCount} movies and ${payload.showCount} shows${scope}; ${action}.`); } function renderMediaChanges(changes = {}) { diff --git a/status_bot.py b/status_bot.py index c20acd5..725a312 100644 --- a/status_bot.py +++ b/status_bot.py @@ -919,14 +919,20 @@ def fetch_jellyfin_library_ids(settings: dict[str, Any], library_names: list[str def fetch_jellyfin_items(settings: dict[str, Any], item_type: str) -> list[dict[str, Any]]: + parent_ids = settings.get("ParentIds") + if isinstance(parent_ids, list) and parent_ids: + all_items: list[dict[str, Any]] = [] + for parent_id in parent_ids: + scoped_settings = dict(settings) + scoped_settings["ParentId"] = str(parent_id) + scoped_settings.pop("ParentIds", None) + all_items.extend(fetch_jellyfin_items(scoped_settings, item_type)) + return all_items + + parent_id_value = str(settings.get("ParentId", "")).strip() or None items: list[dict[str, Any]] = [] start_index = 0 limit = 200 - parent_ids = settings.get("ParentIds") - if isinstance(parent_ids, list) and parent_ids: - parent_id_value = ",".join(str(parent_id) for parent_id in parent_ids) - else: - parent_id_value = None while True: data = jellyfin_request( settings, @@ -1108,6 +1114,7 @@ def sync_jellyfin_library(runtime: BotRuntime, force_publish: bool = False) -> d "changes": changes, "movieCount": len(movies), "showCount": len(shows), + "libraryNames": jellyfin_settings(runtime).get("libraryNames", []), "library": media_library_to_jsonable(movies, shows), "publishResult": result, "jellyfin": jellyfin_settings(runtime),