From de32d59aa1a65df0422f270c4aab7e22bd18e7ed Mon Sep 17 00:00:00 2001 From: Luis Garcia Date: Fri, 21 Feb 2025 14:41:42 -0700 Subject: [PATCH] Better initial library filtering Filter for only tv shows and movie type libraries in plex and jellyfin. Jellyfin no longer require pulling in multiple different items and instead use the actual library category Signed-off-by: Luis Garcia --- src/jellyfin_emby.py | 27 ++++++--------------------- src/plex.py | 7 +++++++ 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/jellyfin_emby.py b/src/jellyfin_emby.py index 81b2145..513b4b7 100644 --- a/src/jellyfin_emby.py +++ b/src/jellyfin_emby.py @@ -211,32 +211,17 @@ class JellyfinEmby: for _, user_id in users.items(): user_libraries: dict = self.query(f"/Users/{user_id}/Views", "get") for library in user_libraries["Items"]: - library_id = library["Id"] library_title = library["Name"] + library_type = library.get("CollectionType") - # Get library items to check the type - media_info = self.query( - f"/Users/{user_id}/Items" - + f"?ParentId={library_id}&Filters=IsPlayed&Recursive=True&excludeItemTypes=Folder&limit=100", - "get", - ) - - types = set( - [ - x["Type"] - for x in media_info["Items"] - if x["Type"] in ["Movie", "Series", "Episode"] - ] - ) - all_types = set([x["Type"] for x in media_info["Items"]]) - - if not types: + if library_type not in ["movies", "tvshows"]: logger( - f"{self.server_type}: Skipping Library {library_title} found wanted types: {all_types}", + f"{self.server_type}: Skipping Library {library_title} found type {library_type}", 1, ) - else: - libraries[library_title] = str(types) + continue + + libraries[library_title] = library_type return libraries except Exception as e: diff --git a/src/plex.py b/src/plex.py index 0260bc1..81ef95c 100644 --- a/src/plex.py +++ b/src/plex.py @@ -287,6 +287,13 @@ class Plex: library_title = library.title library_type = library.type + if library_type not in ["movie", "show"]: + logger( + f"Plex: Skipping Library {library_title} found type {library_type}", + 1, + ) + continue + output[library_title] = library_type return output