diff --git a/modules/builder.py b/modules/builder.py index 7cf39946..c7cecae0 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -23,6 +23,8 @@ method_alias = { "directors": "director", "genres": "genre", "labels": "label", + "collection_minimum": "minimum_items", + "playlist_minimum": "minimum_items", "rating": "critic_rating", "show_user_rating": "user_rating", "video_resolution": "resolution", @@ -93,7 +95,7 @@ ignored_details = [ "validate_builders", "sort_by", "libraries", "sync_to_users", "collection_name", "playlist_name", "name" ] details = ["ignore_ids", "ignore_imdb_ids", "server_preroll", "changes_webhooks", "collection_mode", - "collection_minimum", "label", "album_sorting"] + boolean_details + scheduled_boolean + string_details + "minimum_items", "label", "album_sorting"] + boolean_details + scheduled_boolean + string_details collectionless_details = ["collection_order", "plex_collectionless", "label", "label_sync_mode", "test"] + \ poster_details + background_details + summary_details + string_details item_bool_details = ["item_tmdb_season_titles", "item_assets", "revert_overlay", "item_lock_background", "item_lock_poster", "item_lock_title", "item_refresh"] @@ -173,7 +175,7 @@ parts_collection_valid = [ playlist_attributes = [ "filters", "name_mapping", "show_filtered", "show_missing", "save_missing", "missing_only_released", "only_filter_missing", "delete_below_minimum", "ignore_ids", "ignore_imdb_ids", - "server_preroll", "changes_webhooks", "collection_minimum", + "server_preroll", "changes_webhooks", "minimum_items", ] + custom_sort_builders + summary_details + poster_details + radarr_details + sonarr_details music_attributes = [ "item_label", "item_assets", "item_lock_background", "item_lock_poster", "item_lock_title", @@ -224,7 +226,7 @@ class CollectionBuilder: self.backgrounds = {} self.summaries = {} self.schedule = "" - self.minimum = self.library.collection_minimum + self.minimum = self.library.minimum_items 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 @@ -723,7 +725,7 @@ class CollectionBuilder: def _details(self, method_name, method_data, method_final, methods): if method_name == "collection_mode": self.details[method_name] = util.check_collection_mode(method_data) - elif method_name == "collection_minimum": + elif method_name == "minimum_items": self.minimum = self._parse(method_name, method_data, datatype="int", minimum=1) elif method_name == "server_preroll": self.server_preroll = self._parse(method_name, method_data) diff --git a/modules/config.py b/modules/config.py index 8f0e3ca7..7bef3e4c 100644 --- a/modules/config.py +++ b/modules/config.py @@ -86,6 +86,9 @@ class ConfigFile: replace_attr(new_config["libraries"][library], "show_filtered", "plex") replace_attr(new_config["libraries"][library], "show_missing", "plex") replace_attr(new_config["libraries"][library], "save_missing", "plex") + if new_config["libraries"][library] and "settings" in new_config["libraries"][library]: + if "collection_minimum" in new_config["libraries"][library]["settings"]: + new_config["libraries"][library]["settings"]["minimum_items"] = new_config["libraries"][library]["settings"].pop("collection_minimum") if new_config["libraries"][library] and "webhooks" in new_config["libraries"][library] and "collection_changes" not in new_config["libraries"][library]["webhooks"]: changes = [] def hooks(attr): @@ -95,10 +98,14 @@ class ConfigFile: hooks("collection_addition") hooks("collection_removal") hooks("collection_changes") - new_config["libraries"][library]["webhooks"]["changes"] = changes if changes else None + new_config["libraries"][library]["webhooks"]["changes"] = None if not changes else changes if len(changes) > 1 else changes[0] if "libraries" in new_config: new_config["libraries"] = new_config.pop("libraries") if "playlists" in new_config: new_config["playlists"] = new_config.pop("playlists") - if "settings" in new_config: new_config["settings"] = new_config.pop("settings") + if "settings" in new_config: + temp = new_config.pop("settings") + if "collection_minimum" in temp: + temp["minimum_items"] = temp.pop("collection_minimum") + new_config["settings"] = temp if "webhooks" in new_config: temp = new_config.pop("webhooks") if "changes" not in temp: @@ -112,7 +119,7 @@ class ConfigFile: hooks("collection_addition") hooks("collection_removal") hooks("collection_changes") - temp["changes"] = changes if changes else None + temp["changes"] = None if not changes else changes if len(changes) > 1 else changes[0] new_config["webhooks"] = temp if "plex" in new_config: new_config["plex"] = new_config.pop("plex") if "tmdb" in new_config: new_config["tmdb"] = new_config.pop("tmdb") @@ -232,7 +239,7 @@ class ConfigFile: "dimensional_asset_rename": check_for_attribute(self.data, "dimensional_asset_rename", parent="settings", var_type="bool", default=False), "show_missing_season_assets": check_for_attribute(self.data, "show_missing_season_assets", parent="settings", var_type="bool", default=False), "sync_mode": check_for_attribute(self.data, "sync_mode", parent="settings", default="append", test_list=sync_modes), - "collection_minimum": check_for_attribute(self.data, "collection_minimum", parent="settings", var_type="int", default=1), + "minimum_items": check_for_attribute(self.data, "minimum_items", parent="settings", var_type="int", default=1), "delete_below_minimum": check_for_attribute(self.data, "delete_below_minimum", parent="settings", var_type="bool", default=False), "delete_not_scheduled": check_for_attribute(self.data, "delete_not_scheduled", parent="settings", var_type="bool", default=False), "run_again_delay": check_for_attribute(self.data, "run_again_delay", parent="settings", var_type="int", default=0), @@ -526,7 +533,7 @@ class ConfigFile: params["create_asset_folders"] = check_for_attribute(lib, "create_asset_folders", parent="settings", var_type="bool", default=self.general["create_asset_folders"], do_print=False, save=False) params["dimensional_asset_rename"] = check_for_attribute(lib, "dimensional_asset_rename", parent="settings", var_type="bool", default=self.general["dimensional_asset_rename"], do_print=False, save=False) params["show_missing_season_assets"] = check_for_attribute(lib, "show_missing_season_assets", parent="settings", var_type="bool", default=self.general["show_missing_season_assets"], do_print=False, save=False) - params["collection_minimum"] = check_for_attribute(lib, "collection_minimum", parent="settings", var_type="int", default=self.general["collection_minimum"], do_print=False, save=False) + params["minimum_items"] = check_for_attribute(lib, "minimum_items", parent="settings", var_type="int", default=self.general["minimum_items"], do_print=False, save=False) params["delete_below_minimum"] = check_for_attribute(lib, "delete_below_minimum", parent="settings", var_type="bool", default=self.general["delete_below_minimum"], do_print=False, save=False) 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) diff --git a/modules/library.py b/modules/library.py index d68f2069..6731a9c7 100644 --- a/modules/library.py +++ b/modules/library.py @@ -46,7 +46,7 @@ class Library(ABC): self.dimensional_asset_rename = params["dimensional_asset_rename"] self.show_missing_season_assets = params["show_missing_season_assets"] self.sync_mode = params["sync_mode"] - self.collection_minimum = params["collection_minimum"] + self.minimum_items = params["minimum_items"] self.delete_below_minimum = params["delete_below_minimum"] self.delete_not_scheduled = params["delete_not_scheduled"] self.missing_only_released = params["missing_only_released"] diff --git a/plex_meta_manager.py b/plex_meta_manager.py index ee28e188..aefaea97 100644 --- a/plex_meta_manager.py +++ b/plex_meta_manager.py @@ -219,7 +219,7 @@ def update_libraries(config): logger.debug(f"Asset Folders: {library.asset_folders}") logger.debug(f"Create Asset Folders: {library.create_asset_folders}") logger.debug(f"Sync Mode: {library.sync_mode}") - logger.debug(f"Collection Minimum: {library.collection_minimum}") + logger.debug(f"Collection Minimum: {library.minimum_items}") logger.debug(f"Delete Below Minimum: {library.delete_below_minimum}") logger.debug(f"Delete Not Scheduled: {library.delete_not_scheduled}") logger.debug(f"Missing Only Released: {library.missing_only_released}")