From dc223b25967a95af7e9309632a67f0755128b2c9 Mon Sep 17 00:00:00 2001 From: meisnate12 Date: Wed, 8 Dec 2021 00:17:35 -0500 Subject: [PATCH] #379 ignore_ids and ignore_imdb_ids are now settings attributes --- modules/builder.py | 6 ++++-- modules/config.py | 9 +++++++-- modules/library.py | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/builder.py b/modules/builder.py index b007769f..c04275e8 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -206,6 +206,8 @@ class CollectionBuilder: self.summaries = {} self.schedule = "" self.minimum = self.library.collection_minimum + self.ignore_ids = [i for i in self.library.ignore_ids] + self.ignore_imdb_ids = [i for i in self.library.ignore_imdb_ids] self.server_preroll = None self.current_time = datetime.now() self.current_year = self.current_time.year @@ -748,9 +750,9 @@ class CollectionBuilder: elif method_name == "server_preroll": self.server_preroll = util.parse(method_name, method_data) elif method_name == "ignore_ids": - self.ignore_ids = util.parse(method_name, method_data, datatype="intlist") + self.ignore_ids.extend(util.parse(method_name, method_data, datatype="intlist")) elif method_name == "ignore_imdb_ids": - self.ignore_imdb_ids = util.parse(method_name, method_data, datatype="intlist") + self.ignore_imdb_ids.extend(util.parse(method_name, method_data, datatype="list")) elif method_name == "label": if "label" in methods and "label.sync" in methods: raise Failed("Collection Error: Cannot use label and label.sync together") diff --git a/modules/config.py b/modules/config.py index bb3c7be9..e577f4a1 100644 --- a/modules/config.py +++ b/modules/config.py @@ -143,6 +143,7 @@ class Config: elif attribute not in loaded_config[parent]: loaded_config[parent][attribute] = default else: endline = "" yaml.round_trip_dump(loaded_config, open(self.config_path, "w"), indent=None, block_seq_indent=2) + if default_is_none and var_type in ["list", "int_list"]: return [] elif data[attribute] is None: if default_is_none and var_type in ["list", "int_list"]: return [] elif default_is_none: return None @@ -228,6 +229,8 @@ class Config: "show_missing_assets": check_for_attribute(self.data, "show_missing_assets", parent="settings", var_type="bool", default=True), "save_missing": check_for_attribute(self.data, "save_missing", parent="settings", var_type="bool", default=True), "tvdb_language": check_for_attribute(self.data, "tvdb_language", parent="settings", default="default"), + "ignore_ids": check_for_attribute(self.data, "ignore_ids", parent="settings", var_type="int_list", default_is_none=True), + "ignore_imdb_ids": check_for_attribute(self.data, "ignore_imdb_ids", parent="settings", var_type="list", default_is_none=True), "assets_for_all": check_for_attribute(self.data, "assets_for_all", parent="settings", var_type="bool", default=False, save=False, do_print=False) } self.webhooks = { @@ -445,6 +448,10 @@ class Config: params["delete_not_scheduled"] = check_for_attribute(lib, "delete_not_scheduled", parent="settings", var_type="bool", default=self.general["delete_not_scheduled"], do_print=False, save=False) params["delete_unmanaged_collections"] = check_for_attribute(lib, "delete_unmanaged_collections", parent="settings", var_type="bool", default=False, do_print=False, save=False) params["delete_collections_with_less"] = check_for_attribute(lib, "delete_collections_with_less", parent="settings", var_type="int", default_is_none=True, do_print=False, save=False) + params["ignore_ids"] = check_for_attribute(lib, "ignore_ids", parent="settings", var_type="int_list", default_is_none=True, do_print=False, save=False) + params["ignore_ids"].extend([i for i in self.general["ignore_ids"] if i not in params["ignore_ids"]]) + params["ignore_imdb_ids"] = check_for_attribute(lib, "ignore_imdb_ids", parent="settings", var_type="list", default_is_none=True, do_print=False, save=False) + params["ignore_imdb_ids"].extend([i for i in self.general["ignore_imdb_ids"] if i not in params["ignore_imdb_ids"]]) params["error_webhooks"] = check_for_attribute(lib, "error", parent="webhooks", var_type="list", default=self.webhooks["error"], do_print=False, save=False, default_is_none=True) params["collection_changes_webhooks"] = check_for_attribute(lib, "collection_creation", parent="webhooks", var_type="list", default=self.webhooks["collection_changes"], do_print=False, save=False, default_is_none=True) params["assets_for_all"] = check_for_attribute(lib, "assets_for_all", parent="settings", var_type="bool", default=self.general["assets_for_all"], do_print=False, save=False) @@ -491,8 +498,6 @@ class Config: logger.warning("Config Warning: Using default template for tmdb_collections") else: logger.error("Config Error: tmdb_collections blank using default settings") - if params["tmdb_collections"]["exclude_ids"] is None: - params["tmdb_collections"]["exclude_ids"] = [] if params["tmdb_collections"]["remove_suffix"]: params["tmdb_collections"]["remove_suffix"] = params["tmdb_collections"]["remove_suffix"].strip() if "genre_mapper" in lib["operations"]: diff --git a/modules/library.py b/modules/library.py index fb55edcd..2c8ed99a 100644 --- a/modules/library.py +++ b/modules/library.py @@ -52,6 +52,8 @@ class Library(ABC): self.show_missing_assets = params["show_missing_assets"] self.save_missing = params["save_missing"] self.only_filter_missing = params["only_filter_missing"] + self.ignore_ids = params["ignore_ids"] + self.ignore_imdb_ids = params["ignore_imdb_ids"] self.assets_for_all = params["assets_for_all"] self.delete_unmanaged_collections = params["delete_unmanaged_collections"] self.delete_collections_with_less = params["delete_collections_with_less"]