Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Reorder overlays [episodes > seasons > shows] #2211

Open
wants to merge 2 commits into
base: nightly
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion PART
Original file line number Diff line number Diff line change
@@ -1 +1 @@

1
2 changes: 1 addition & 1 deletion modules/overlays.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def trakt_ratings():
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}")
Expand Down
12 changes: 7 additions & 5 deletions modules/plex.py
Original file line number Diff line number Diff line change
Expand Up @@ -1640,15 +1640,17 @@ def _recur(sub, item_type_in=None):

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())
Expand Down