diff --git a/.github/workflows/validate-pull.yml b/.github/workflows/validate-pull.yml index a806e1b6..28eb44b9 100644 --- a/.github/workflows/validate-pull.yml +++ b/.github/workflows/validate-pull.yml @@ -56,7 +56,7 @@ jobs: done - name: Run Spellcheck - uses: rojopolis/spellcheck-github-actions@0.40.0 + uses: rojopolis/spellcheck-github-actions@0.41.0 docker-build-pull: runs-on: ubuntu-latest diff --git a/CHANGELOG b/CHANGELOG index c7ba319c..ce79a9f1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -26,5 +26,6 @@ Fixes #2135 AniDB Builder type conversion error Fixed #2150; change xmen list to a new one Fixed #2169 Add handling for blank secrets Fixed #2176 `clean_bundles`, `optimize`, and `empty_trash` not working as global attributes +Fixed #2186 `total_runtime` will now trigger an overlay update Various other Minor Fixes diff --git a/VERSION b/VERSION index 80e4d266..9647a93e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.2-build29 +2.0.2-build30 diff --git a/modules/overlay.py b/modules/overlay.py index 9f8e62f4..30bfabe5 100644 --- a/modules/overlay.py +++ b/modules/overlay.py @@ -19,7 +19,7 @@ rating_sources = [ "anidb_rating", "anidb_average_rating", "anidb_score_rating", "mal_rating" ] float_vars = ["audience_rating", "critic_rating", "user_rating"] + rating_sources -int_vars = ["runtime", "season_number", "episode_number", "episode_count", "versions"] +int_vars = ["runtime", "total_runtime", "season_number", "episode_number", "episode_count", "versions"] date_vars = ["originally_available"] types_for_var = { "movie_show_season_episode_artist_album": ["runtime", "user_rating", "title"], diff --git a/modules/overlays.py b/modules/overlays.py index a0933b02..b5bbb59d 100644 --- a/modules/overlays.py +++ b/modules/overlays.py @@ -132,9 +132,14 @@ class Overlays: if properties[over_name].name.startswith("text"): for cache_key, cache_value in self.cache.query_overlay_special_text(item.ratingKey).items(): actual = plex.attribute_translation[cache_key] if cache_key in plex.attribute_translation else cache_key - if not hasattr(item, actual): - continue - real_value = getattr(item, actual) + if actual == "total_runtime": + sub_items = item.episodes() if current_overlay.level in ["show", "season"] else item.tracks() + sub_items = [ep.duration for ep in sub_items if hasattr(ep, "duration") and ep.duration] + real_value = sum(sub_items) + else: + if not hasattr(item, actual): + continue + real_value = getattr(item, actual) if cache_value is None or real_value is None: continue if cache_key in overlay.float_vars: diff --git a/requirements.txt b/requirements.txt index 2bcbefa4..59ab4b62 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,5 +12,5 @@ requests==2.32.3 tenacity==9.0.0 ruamel.yaml==0.18.6 schedule==1.2.2 -setuptools==72.1.0 +setuptools==72.2.0 tmdbapis==1.2.16 \ No newline at end of file