diff --git a/CHANGELOG b/CHANGELOG index aa92cc3c..9d89cbf2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,5 +10,6 @@ Updated lxml requirement to 5.1.0 # Bug Fixes Fixed the Rate Limit on MDbList calls Fixed collection fields being locked during batch edits when they shouldn't be +Fixed awards dynamic collections where `latest` wasn't pulling the correct values Various other Minor Fixes diff --git a/README.md b/README.md index 4ea58c14..97353562 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Here are some examples of the things you can achieve using Plex Meta Manager! ![Movie Collection Preview](https://metamanager.wiki/en/latest/images/movie-collection-preview.png) -**Example Show Overlays using the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/overalys)** (click to enlarge): +**Example Show Overlays using the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/overlays)** (click to enlarge): ![Show Library Preview](https://metamanager.wiki/en/latest/images/show-library-preview.png) diff --git a/VERSION b/VERSION index ab0735c6..6fe22198 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.20.0-develop5 +1.20.0-develop6 diff --git a/defaults/award/bafta.yml b/defaults/award/bafta.yml index 5f9f9898..38e69055 100644 --- a/defaults/award/bafta.yml +++ b/defaults/award/bafta.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000123 - starting: latest-5 + starting: latest-4 ending: latest title_format: BAFTA <> template: diff --git a/defaults/award/berlinale.yml b/defaults/award/berlinale.yml index 0b3d8ce1..10e985e1 100644 --- a/defaults/award/berlinale.yml +++ b/defaults/award/berlinale.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000091 - starting: latest-5 + starting: latest-4 ending: latest title_format: Berlinale <> template: diff --git a/defaults/award/cannes.yml b/defaults/award/cannes.yml index a5ac1b3b..939523db 100644 --- a/defaults/award/cannes.yml +++ b/defaults/award/cannes.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000147 - starting: latest-5 + starting: latest-4 ending: latest title_format: Cannes <> template: diff --git a/defaults/award/cesar.yml b/defaults/award/cesar.yml index ecdc8454..180d3b70 100644 --- a/defaults/award/cesar.yml +++ b/defaults/award/cesar.yml @@ -35,7 +35,7 @@ dynamic_collections: sync: true data: event_id: ev0000157 - starting: latest-5 + starting: latest-4 ending: latest title_format: Cesar <> template: diff --git a/defaults/award/choice.yml b/defaults/award/choice.yml index 99c2ee46..83116bcc 100644 --- a/defaults/award/choice.yml +++ b/defaults/award/choice.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000133 - starting: latest-5 + starting: latest-4 ending: latest title_format: Critics Choice Awards <> template: diff --git a/defaults/award/emmy.yml b/defaults/award/emmy.yml index 75af1c36..9d34df7e 100644 --- a/defaults/award/emmy.yml +++ b/defaults/award/emmy.yml @@ -58,7 +58,7 @@ dynamic_collections: sync: true data: event_id: ev0000223 - starting: latest-5 + starting: latest-4 ending: latest title_format: Emmys <> template: diff --git a/defaults/award/golden.yml b/defaults/award/golden.yml index e7afeb7d..4e5e18d2 100644 --- a/defaults/award/golden.yml +++ b/defaults/award/golden.yml @@ -68,7 +68,7 @@ dynamic_collections: sync: true data: event_id: ev0000292 - starting: latest-5 + starting: latest-4 ending: latest title_format: Golden Globe <> template: diff --git a/defaults/award/nfr.yml b/defaults/award/nfr.yml index 74d23dc6..b8cb4cd0 100644 --- a/defaults/award/nfr.yml +++ b/defaults/award/nfr.yml @@ -33,7 +33,7 @@ dynamic_collections: sync: true data: event_id: ev0000468 - starting: latest-5 + starting: latest-4 ending: latest title_format: National Film Registry <> template: diff --git a/defaults/award/oscars.yml b/defaults/award/oscars.yml index d217a403..e783c141 100644 --- a/defaults/award/oscars.yml +++ b/defaults/award/oscars.yml @@ -59,7 +59,7 @@ dynamic_collections: sync: true data: event_id: ev0000003 - starting: latest-5 + starting: latest-4 ending: latest title_format: Oscars Winners <> template: diff --git a/defaults/award/pca.yml b/defaults/award/pca.yml index 9ec488b7..6833436e 100644 --- a/defaults/award/pca.yml +++ b/defaults/award/pca.yml @@ -42,7 +42,7 @@ dynamic_collections: sync: true data: event_id: ev0000530 - starting: latest-5 + starting: latest-4 ending: latest title_format: People's Choice Awards <> template: diff --git a/defaults/award/razzie.yml b/defaults/award/razzie.yml index 3657f130..5458ad81 100644 --- a/defaults/award/razzie.yml +++ b/defaults/award/razzie.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000558 - starting: latest-5 + starting: latest-4 ending: latest title_format: Razzie <> template: diff --git a/defaults/award/sag.yml b/defaults/award/sag.yml index 1041a99c..b0064ba2 100644 --- a/defaults/award/sag.yml +++ b/defaults/award/sag.yml @@ -39,7 +39,7 @@ dynamic_collections: sync: true data: event_id: ev0000598 - starting: latest-5 + starting: latest-4 ending: latest title_format: Screen Actors Guild <> template: diff --git a/defaults/award/spirit.yml b/defaults/award/spirit.yml index 2e149686..929eaa5c 100644 --- a/defaults/award/spirit.yml +++ b/defaults/award/spirit.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000349 - starting: latest-5 + starting: latest-4 ending: latest title_format: Independent Spirit Awards <> template: diff --git a/defaults/award/sundance.yml b/defaults/award/sundance.yml index de3d95b4..71ede179 100644 --- a/defaults/award/sundance.yml +++ b/defaults/award/sundance.yml @@ -34,7 +34,7 @@ dynamic_collections: sync: true data: event_id: ev0000631 - starting: latest-5 + starting: latest-4 ending: latest title_format: Sundance Film Festival <> template: diff --git a/defaults/award/tiff.yml b/defaults/award/tiff.yml index ef2c7289..a0cecc12 100644 --- a/defaults/award/tiff.yml +++ b/defaults/award/tiff.yml @@ -41,7 +41,7 @@ dynamic_collections: sync: true data: event_id: ev0000659 - starting: latest-5 + starting: latest-4 ending: latest title_format: Toronto International Film Festival <> template: diff --git a/defaults/award/venice.yml b/defaults/award/venice.yml index 4d0ddb20..369bff64 100644 --- a/defaults/award/venice.yml +++ b/defaults/award/venice.yml @@ -42,7 +42,7 @@ dynamic_collections: sync: true data: event_id: ev0000681 - starting: latest-5 + starting: latest-4 ending: latest title_format: Venice <> template: diff --git a/defaults/both/universe.yml b/defaults/both/universe.yml index 9b5d9825..6184780a 100644 --- a/defaults/both/universe.yml +++ b/defaults/both/universe.yml @@ -84,7 +84,7 @@ dynamic_collections: # check1 trakt_url: mcu: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe - trek: https://trakt.tv/users/wdvhucb/lists/star-trek + trek: https://trakt.tv/users/dgw/lists/star-trek-canon middle: https://trakt.tv/users/oya-kesh/lists/middle-earth # check2 mdblist_url: diff --git a/modules/meta.py b/modules/meta.py index 6e6742de..7a184f04 100644 --- a/modules/meta.py +++ b/modules/meta.py @@ -1000,27 +1000,28 @@ class MetadataFile(DataFile): _, event_years = self.config.IMDb.get_event_years(event_id) year_options = [event_years[len(event_years) - i] for i in range(1, len(event_years) + 1)] - def get_position(attr, pos_add=0): + def get_position(attr): if attr not in award_methods: return 0 if attr == "starting" else len(year_options) position_value = str(dynamic_data[award_methods[attr]]) if not position_value: raise Failed(f"Config Error: {map_name} data {attr} attribute is blank") if position_value.startswith(("first", "latest", "current_year")): - int_values = position_value.split("+" if position_value.startswith("first") else "-") + is_first = position_value.startswith("first") + int_values = position_value.split("+" if is_first else "-") try: if len(int_values) == 1: - return 0 if position_value.startswith("first") else len(year_options) + return 1 if is_first else len(year_options) else: - return int(int_values[1].strip()) * (1 if position_value.startswith("first") else -1) + return (int(int_values[1].strip()) + (1 if is_first else 0)) * (1 if is_first else -1) except ValueError: raise Failed(f"Config Error: {map_name} data {attr} attribute modifier invalid '{int_values[1]}'") elif position_value in year_options: - return year_options.index(position_value) + pos_add + return year_options.index(position_value) + 1 else: raise Failed(f"Config Error: {map_name} data {attr} attribute invalid: {position_value}") - found_options = year_options[get_position("starting"):get_position("ending")] + found_options = year_options[get_position("starting") - 1:get_position("ending")] if not found_options: raise Failed(f"Config Error: {map_name} data starting/ending range found no valid events") diff --git a/modules/tvdb.py b/modules/tvdb.py index 7c23d165..3237e67b 100644 --- a/modules/tvdb.py +++ b/modules/tvdb.py @@ -55,7 +55,7 @@ class TVDbObj: try: data = self._tvdb.get_request(item_url) except Failed: - raise Failed(f"TVDb Error: {'Movie' if is_movie else 'Series'} not found at {item_url}") + raise Failed(f"TVDb Error: No {'Movie' if is_movie else 'Series'} found for TVDb ID: {tvdb_id} at {item_url}") def parse_page(xpath, is_list=False): parse_results = data.xpath(xpath) diff --git a/plex_meta_manager.py b/plex_meta_manager.py index be163d47..8bfb817b 100644 --- a/plex_meta_manager.py +++ b/plex_meta_manager.py @@ -394,7 +394,7 @@ def run_config(config, stats): playlist_status = {} playlist_stats = {} - if (config.playlist_files or config.general["playlist_report"]) and not run_args["overlays-only"] and not run_args["operations-only"] and not run_args["collections-only"] and not config.requested_files: + if (config.playlist_files or config.general["playlist_report"]) and not run_args["overlays-only"] and not run_args["metadata-only"] and not run_args["operations-only"] and not run_args["collections-only"] and not config.requested_files: #logger.add_playlists_handler() if config.playlist_files: playlist_status, playlist_stats = run_playlists(config)