From e18acf0b5822eb3ea020f2814c94360ffe4d7ea4 Mon Sep 17 00:00:00 2001 From: Luis Garcia Date: Sun, 27 Oct 2024 17:43:17 -0600 Subject: [PATCH] Fix Jellyfin_Emby bug --- src/jellyfin_emby.py | 11 ++-- src/plex.py | 2 +- test/validate_ci_marklog.py | 118 ++++++++++++++++++------------------ 3 files changed, 66 insertions(+), 65 deletions(-) diff --git a/src/jellyfin_emby.py b/src/jellyfin_emby.py index 4a778c8..11b76f3 100644 --- a/src/jellyfin_emby.py +++ b/src/jellyfin_emby.py @@ -398,8 +398,8 @@ def get_user_library_watched( user_watched[library_title][show_guids] = mark_episodes_list for episode in mark_episodes_list: logger( - f"{self.server_type}: Added {episode} to {user_name} {show_display_name} watched list", - 1, + f"{self.server_type}: Added {episode} to {user_name} watched list", + 3, ) logger( @@ -431,6 +431,10 @@ def get_watched(self, users, sync_libraries): for library in all_libraries["Items"]: library_id = library["Id"] library_title = library["Name"] + + if library_title not in sync_libraries: + continue + identifiers = { "library_id": library_id, "library_title": library_title, @@ -451,9 +455,6 @@ def get_watched(self, users, sync_libraries): library_id = library["Identifiers"]["library_id"] library_title = library["Identifiers"]["library_title"] - if library_title not in sync_libraries: - continue - # Get all library types excluding "Folder" types = set( [ diff --git a/src/plex.py b/src/plex.py index 490a4e4..7e95f7c 100644 --- a/src/plex.py +++ b/src/plex.py @@ -186,7 +186,7 @@ def get_user_library_watched(user, user_plex, library): if show_guids and episode_guids: watched[show_guids] = episode_guids logger( - f"Plex: Added {episode_guids} to {user_name} {show_guids} watched list", + f"Plex: Added {episode_guids} to {user_name} watched list", 3, ) diff --git a/test/validate_ci_marklog.py b/test/validate_ci_marklog.py index 18866a9..e369713 100644 --- a/test/validate_ci_marklog.py +++ b/test/validate_ci_marklog.py @@ -74,74 +74,74 @@ def check_marklog(lines, expected_values): def main(): args = parse_args() expected_jellyfin = [ - "jellyplex_watched/Movies/Five Nights at Freddy's", - "jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/301215", - "jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", - "jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/300670", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/300741", - "jellyplex_watched/Movies/The Family Plan", - "jellyplex_watched/Movies/Five Nights at Freddy's", - "jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/5", - "jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", - "jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/5", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/5", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/The Way Out", + "Plex/JellyPlex-CI/jellyplex_watched/Movies/Five Nights at Freddy's", + "Plex/JellyPlex-CI/jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/301215", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/300670", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/300741", + "Emby/Emby-Server/jellyplex_watched/Movies/The Family Plan", + "Emby/Emby-Server/jellyplex_watched/Movies/Five Nights at Freddy's", + "Emby/Emby-Server/jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/5", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/5", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/5", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/The Way Out", ] expected_emby = [ - "jellyplex_watched/Movies/Tears of Steel", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Parallels and Interiors/240429", - "JellyUser/Movies/Tears of Steel", - "JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", + "Plex/JellyPlex-CI/jellyplex_watched/Movies/Tears of Steel", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Parallels and Interiors/240429", + "Jellyfin/Jellyfin-Server/JellyUser/Movies/Tears of Steel", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", ] expected_plex = [ - "Jellyfin/ea447008efac/JellyUser/Movies/Big Buck Bunny", - "Jellyfin/ea447008efac/JellyUser/Movies/Killers of the Flower Moon/4", - "Jellyfin/ea447008efac/JellyUser/Shows/Doctor Who/The Unquiet Dead", - "Jellyfin/ea447008efac/JellyUser/Shows/Doctor Who/Aliens of London (1)/4", - "Jellyfin/ea447008efac/JellyUser/Shows/Monarch: Legacy of Monsters/Secrets and Lies", - "Jellyfin/ea447008efac/JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", - "Emby/6f9f64ff0a14/jellyplex_watched/Movies/Big Buck Bunny", - "Emby/6f9f64ff0a14/jellyplex_watched/Movies/The Family Plan", - "Emby/6f9f64ff0a14/jellyplex_watched/Movies/Killers of the Flower Moon/4", - "Emby/6f9f64ff0a14/jellyplex_watched/TV Shows/Doctor Who (2005)/The Unquiet Dead", - "Emby/6f9f64ff0a14/jellyplex_watched/TV Shows/Doctor Who (2005)/Aliens of London (1)/4", - "Emby/6f9f64ff0a14/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Secrets and Lies", - "Emby/6f9f64ff0a14/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/The Way Out", + "Jellyfin/Jellyfin-Server/JellyUser/Movies/Big Buck Bunny", + "Jellyfin/Jellyfin-Server/JellyUser/Movies/Killers of the Flower Moon/4", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Doctor Who/The Unquiet Dead", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Doctor Who/Aliens of London (1)/4", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Monarch: Legacy of Monsters/Secrets and Lies", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", + "Emby/Emby-Server/jellyplex_watched/Movies/Big Buck Bunny", + "Emby/Emby-Server/jellyplex_watched/Movies/The Family Plan", + "Emby/Emby-Server/jellyplex_watched/Movies/Killers of the Flower Moon/4", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/The Unquiet Dead", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/Aliens of London (1)/4", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Secrets and Lies", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/The Way Out", ] expected_dry = expected_emby + expected_plex + expected_jellyfin expected_write = [ - "jellyplex_watched/Movies/Five Nights at Freddy's", - "jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/301215", - "jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", - "jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/300670", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/300741", - "JellyUser/Movies/Big Buck Bunny", - "JellyUser/Movies/Killers of the Flower Moon/4", - "JellyUser/Shows/Doctor Who/The Unquiet Dead", - "JellyUser/Shows/Doctor Who/Aliens of London (1)/4", - "JellyUser/Shows/Monarch: Legacy of Monsters/Secrets and Lies", - "JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", - "jellyplex_watched/Movies/Tears of Steel", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Parallels and Interiors/240429", - "jellyplex_watched/Movies/Big Buck Bunny", - "jellyplex_watched/Movies/The Family Plan", - "jellyplex_watched/Movies/Five Nights at Freddy's", - "jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/5", - "jellyplex_watched/Movies/Killers of the Flower Moon/4", - "jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", - "jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/5", - "jellyplex_watched/TV Shows/Doctor Who (2005)/The Unquiet Dead", - "jellyplex_watched/TV Shows/Doctor Who (2005)/Aliens of London (1)/4", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/5", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Secrets and Lies", - "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/The Way Out", - "JellyUser/Movies/Tears of Steel", - "JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", + "Plex/JellyPlex-CI/jellyplex_watched/Movies/Five Nights at Freddy's", + "Plex/JellyPlex-CI/jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/301215", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/300670", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/300741", + "Jellyfin/Jellyfin-Server/JellyUser/Movies/Big Buck Bunny", + "Jellyfin/Jellyfin-Server/JellyUser/Movies/Killers of the Flower Moon/4", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Doctor Who/The Unquiet Dead", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Doctor Who/Aliens of London (1)/4", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Monarch: Legacy of Monsters/Secrets and Lies", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4", + "Plex/JellyPlex-CI/jellyplex_watched/Movies/Tears of Steel", + "Plex/JellyPlex-CI/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Parallels and Interiors/240429", + "Emby/Emby-Server/jellyplex_watched/Movies/Big Buck Bunny", + "Emby/Emby-Server/jellyplex_watched/Movies/The Family Plan", + "Emby/Emby-Server/jellyplex_watched/Movies/Five Nights at Freddy's", + "Emby/Emby-Server/jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/5", + "Emby/Emby-Server/jellyplex_watched/Movies/Killers of the Flower Moon/4", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/5", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/The Unquiet Dead", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Doctor Who (2005)/Aliens of London (1)/4", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/5", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Secrets and Lies", + "Emby/Emby-Server/jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/The Way Out", + "Jellyfin/Jellyfin-Server/JellyUser/Movies/Tears of Steel", + "Jellyfin/Jellyfin-Server/JellyUser/Shows/Monarch: Legacy of Monsters/Parallels and Interiors/4" ] # Expected values for the mark.log file, dry-run is slightly different than write-run