From 82beaebd8c1f76759844474477c7aad783273861 Mon Sep 17 00:00:00 2001 From: meisnate12 Date: Wed, 3 Jan 2024 14:06:05 -0500 Subject: [PATCH] [77] oscars fix --- VERSION | 2 +- defaults/award/golden.yml | 1 - defaults/award/oscars.yml | 1 + modules/builder.py | 4 ++-- modules/imdb.py | 7 ++++--- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/VERSION b/VERSION index 3ef72367..bbcce947 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.19.1-develop76 +1.19.1-develop77 diff --git a/defaults/award/golden.yml b/defaults/award/golden.yml index eae2eac9..539b539b 100644 --- a/defaults/award/golden.yml +++ b/defaults/award/golden.yml @@ -54,7 +54,6 @@ collections: translation_key: golden_director - name: arr - name: custom - tmdb_list: 8235502 imdb_award: event_id: ev0000292 event_year: all diff --git a/defaults/award/oscars.yml b/defaults/award/oscars.yml index 20b4028e..d3599206 100644 --- a/defaults/award/oscars.yml +++ b/defaults/award/oscars.yml @@ -45,6 +45,7 @@ collections: event_id: ev0000003 event_year: all category_filter: + - best achievement in directing - best director - best director, comedy picture - best director, dramatic picture diff --git a/modules/builder.py b/modules/builder.py index 3c8a053b..7db3de33 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -1516,7 +1516,7 @@ class CollectionBuilder: if not og_year: raise Failed(f"{self.Type} Error: imdb_award event_year attribute is blank") if og_year == "all": - event_year = year_options + event_year = "all" elif not isinstance(og_year, list) and "-" in str(og_year) and len(str(og_year)) > 7: try: min_year, max_year = og_year.split("-") @@ -1531,7 +1531,7 @@ class CollectionBuilder: raise Failed(f"{self.Type} Error: imdb_award event_year attribute invalid: {og_year}") else: event_year = util.parse(self.Type, "event_year", og_year, parent=method_name, datatype="strlist", options=year_options) - if len(event_year) > 1 and not git_event: + if (event_year == "all" or len(event_year) > 1) and not git_event: raise Failed(f"{self.Type} Error: Only specific events work when using multiple years. Event Options: [{', '.join([k for k in self.config.IMDb.events_validation])}]") award_filters = [] if "award_filter" in dict_methods: diff --git a/modules/imdb.py b/modules/imdb.py index a54c8a67..6ab6a637 100644 --- a/modules/imdb.py +++ b/modules/imdb.py @@ -173,7 +173,7 @@ class IMDb: return self.events_validation[event_id]["awards"], self.events_validation[event_id]["categories"] award_names = [] category_names = [] - event_slug = f"{event_year}/1" if "-" not in event_year else event_year.replace("-", "/") + event_slug = f"{event_year[0]}/1" if "-" not in event_year[0] else event_year[0].replace("-", "/") for text in self._request(f"{base_url}/event/{event_id}/{event_slug}/?ref_=ev_eh", xpath="//div[@class='article']/script/text()")[0].split("\n"): if text.strip().startswith("IMDbReactWidgets.NomineesWidget.push"): jsonline = text.strip() @@ -441,7 +441,8 @@ class IMDb: final_list = [] if data["event_id"] in self.events_validation: event_data = self.get_event(data["event_id"]) - for event_year in data["event_year"]: + event_years = self.events_validation[data["event_id"]]["years"] if data["event_year"] == "all" else data["event_year"] + for event_year in event_years: for award, categories in event_data[event_year].items(): if data["award_filter"] and award not in data["award_filter"]: continue @@ -547,7 +548,7 @@ class IMDb: logger.info(f"Processing IMDb Watchlist: {data}") return [(_i, "imdb") for _i in self._watchlist(data, language)] elif method == "imdb_award": - if len(data["event_year"]) == 1: + if data["event_year"] != "all" and len(data["event_year"]) == 1: event_slug = f"{data['event_year'][0]}/1" if "-" not in data["event_year"][0] else data["event_year"][0].replace("-", "/") logger.info(f"Processing IMDb Award: {base_url}/event/{data['event_id']}/{event_slug}/?ref_=ev_eh") else: