diff --git a/CHANGELOG b/CHANGELOG index 54c61427..5e51969f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,7 @@ Fixes an issue where Prime Video overlays/collections would not be built when th # Bug Fixes Fixed the `cast` search option for the `imdb_search` builder +Fixed an issue where season-level overlays would not work if the season had no image and the show-level image already had an overlay. As a result, episode overlays will now apply before season overlays, and season overlays will now apply before show overlays. Fixes #2258 `imdb_list` sort was not being parsed correctly Fixes `letterboxd_list` rating filter to use a 1-10 rating vs 1-100 to reflect how letterboxd ratings work on their website Fixed the `ids_to_anidb` lookup for anime movies and shows diff --git a/modules/overlays.py b/modules/overlays.py index a627b620..a8f295a0 100644 --- a/modules/overlays.py +++ b/modules/overlays.py @@ -82,7 +82,7 @@ class Overlays: raise Failed return _trakt_ratings - for i, (over_key, (item, over_names)) in enumerate(sorted(key_to_overlays.items(), key=lambda io: self.library.get_item_sort_title(io[1][0])), 1): + for i, (over_key, (item, over_names)) in enumerate(sorted(key_to_overlays.items(), key=lambda io: self.library.get_item_sort_title(io[1][0], ep_first_order=True)), 1): item_title = self.library.get_item_sort_title(item, atr="title") try: logger.ghost(f"Overlaying: {i}/{len(key_to_overlays)} {item_title}") diff --git a/modules/plex.py b/modules/plex.py index d5e4a560..3b0d45bd 100644 --- a/modules/plex.py +++ b/modules/plex.py @@ -1640,15 +1640,17 @@ class Plex(Library): return map_key, attrs - def get_item_sort_title(self, item_to_sort, atr="titleSort"): + + def get_item_sort_title(self, item_to_sort, atr="titleSort", ep_first_order=False): if isinstance(item_to_sort, Album): - return f"{getattr(item_to_sort.artist(), atr)} Album {getattr(item_to_sort, atr)}" + return f"{getattr(item_to_sort.artist(), atr)}{'1' if ep_first_order else ''} Album {getattr(item_to_sort, atr)}" elif isinstance(item_to_sort, Season): - return f"{getattr(item_to_sort.show(), atr)} Season {item_to_sort.seasonNumber}" + return f"{getattr(item_to_sort.show(), atr)}{'1' if ep_first_order else ''} Season {item_to_sort.seasonNumber}" elif isinstance(item_to_sort, Episode): - return f"{getattr(item_to_sort.show(), atr)} {item_to_sort.seasonEpisode.upper()}" + return f"{getattr(item_to_sort.show(), atr)}{'0' if ep_first_order else ''} {item_to_sort.seasonEpisode.upper()}" else: - return getattr(item_to_sort, atr) + return f"{getattr(item_to_sort, atr)}{'2' if ep_first_order else ''}" + def split(self, text): attribute, modifier = os.path.splitext(str(text).lower())