[11] suppress Yozora's rage

pull/858/head
meisnate12 3 years ago
parent f7d7de36f9
commit 9cf79d2a91

@ -1 +1 @@
1.16.5-develop10 1.16.5-develop11

@ -87,11 +87,11 @@ overlays:
resolution: 4K resolution: 4K
``` ```
### Supress Overlays ### Suppress Overlays
You can add `supress_overlays` to an overlay definition and give it a list or comma separated string of overlay names you want suppressed from this item if this overlay is attached to the item. You can add `suppress_overlays` to an overlay definition and give it a list or comma separated string of overlay names you want suppressed from this item if this overlay is attached to the item.
So in this example if the `4K-HDR` overlay matches an item then the `4K` and `HDR` overlays will also match. The `supress_overlays` attribute on `4K-HDR` will stop the overlays specified (`4K` and `HDR`) from also being applied. So in this example if the `4K-HDR` overlay matches an item then the `4K` and `HDR` overlays will also match. The `suppress_overlays` attribute on `4K-HDR` will stop the overlays specified (`4K` and `HDR`) from also being applied.
```yaml ```yaml
overlays: overlays:
@ -104,7 +104,7 @@ overlays:
all: all:
hdr: true hdr: true
4K-HDR: 4K-HDR:
supress_overlays: suppress_overlays:
- 4K - 4K
- HDR - HDR
plex_search: plex_search:

@ -97,7 +97,7 @@ boolean_details = [
scheduled_boolean = ["visible_library", "visible_home", "visible_shared"] scheduled_boolean = ["visible_library", "visible_home", "visible_shared"]
string_details = ["sort_title", "content_rating", "name_mapping"] string_details = ["sort_title", "content_rating", "name_mapping"]
ignored_details = [ ignored_details = [
"smart_filter", "smart_label", "smart_url", "run_again", "schedule", "sync_mode", "template", "test", "supress_overlays", "smart_filter", "smart_label", "smart_url", "run_again", "schedule", "sync_mode", "template", "test", "suppress_overlays",
"delete_not_scheduled", "tmdb_person", "build_collection", "collection_order", "collection_level", "overlay", "delete_not_scheduled", "tmdb_person", "build_collection", "collection_order", "collection_level", "overlay",
"validate_builders", "libraries", "sync_to_users", "collection_name", "playlist_name", "name", "blank_collection" "validate_builders", "libraries", "sync_to_users", "collection_name", "playlist_name", "name", "blank_collection"
] ]
@ -190,7 +190,7 @@ custom_sort_builders = [
"mal_popular", "mal_favorite", "mal_suggested", "mal_userlist", "mal_season", "mal_genre", "mal_studio" "mal_popular", "mal_favorite", "mal_suggested", "mal_userlist", "mal_season", "mal_genre", "mal_studio"
] ]
episode_parts_only = ["plex_pilots"] episode_parts_only = ["plex_pilots"]
overlay_only = ["overlay", "supress_overlays"] overlay_only = ["overlay", "suppress_overlays"]
overlay_attributes = [ overlay_attributes = [
"filters", "limit", "show_missing", "save_missing", "missing_only_released", "minimum_items", "cache_builders", "tmdb_region" "filters", "limit", "show_missing", "save_missing", "missing_only_released", "minimum_items", "cache_builders", "tmdb_region"
] + all_builders + overlay_only ] + all_builders + overlay_only
@ -264,7 +264,7 @@ class CollectionBuilder:
self.data[attr] = new_attributes[attr] self.data[attr] = new_attributes[attr]
methods[attr.lower()] = attr methods[attr.lower()] = attr
self.supress_overlays = [] self.suppress_overlays = []
if self.overlay: if self.overlay:
if "overlay" in methods: if "overlay" in methods:
logger.debug("") logger.debug("")
@ -308,14 +308,14 @@ class CollectionBuilder:
if self.overlay != "blur" and not os.path.exists(overlay_path): if self.overlay != "blur" and not os.path.exists(overlay_path):
raise Failed(f"{self.Type} Error: Overlay Image not found at: {overlay_path}") raise Failed(f"{self.Type} Error: Overlay Image not found at: {overlay_path}")
if "supress_overlays" in methods: if "suppress_overlays" in methods:
logger.debug("") logger.debug("")
logger.debug("Validating Method: supress_overlays") logger.debug("Validating Method: suppress_overlays")
logger.debug(f"Value: {data[methods['supress_overlays']]}") logger.debug(f"Value: {data[methods['suppress_overlays']]}")
if data[methods["supress_overlays"]]: if data[methods["suppress_overlays"]]:
self.supress_overlays = util.get_list(data[methods["supress_overlays"]]) self.suppress_overlays = util.get_list(data[methods["suppress_overlays"]])
else: else:
logger.error(f"{self.Type} Error: supress_overlays attribute is blank") logger.error(f"{self.Type} Error: suppress_overlays attribute is blank")
if self.playlist: if self.playlist:
if "libraries" in methods: if "libraries" in methods:

@ -296,8 +296,16 @@ class MetadataFile(DataFile):
raise Failed(f"Config Error: {map_name} type attribute: {dynamic[methods['type']]} requires trakt to be configured") raise Failed(f"Config Error: {map_name} type attribute: {dynamic[methods['type']]} requires trakt to be configured")
else: else:
auto_type = dynamic[methods["type"]].lower() auto_type = dynamic[methods["type"]].lower()
og_exclude = util.parse("Config", "exclude", dynamic, parent=map_name, methods=methods, datatype="strlist") if "exclude" in methods else [] og_exclude = []
include = util.parse("Config", "include", dynamic, parent=map_name, methods=methods, datatype="strlist") if "include" in methods else [] if "exclude" in self.temp_vars:
og_exclude = util.parse("Config", "exclude", self.temp_vars["exclude"], parent="template_variable", datatype="strlist")
elif "exclude" in methods:
og_exclude = util.parse("Config", "exclude", dynamic, parent=map_name, methods=methods, datatype="strlist")
include = []
if "include" in self.temp_vars:
include = util.parse("Config", "include", self.temp_vars["include"], parent="template_variable", datatype="strlist")
elif "include" in methods:
include = util.parse("Config", "include", dynamic, parent=map_name, methods=methods, datatype="strlist")
addons = util.parse("Config", "addons", dynamic, parent=map_name, methods=methods, datatype="dictliststr") if "addons" in methods else {} addons = util.parse("Config", "addons", dynamic, parent=map_name, methods=methods, datatype="dictliststr") if "addons" in methods else {}
exclude = [str(e) for e in og_exclude] exclude = [str(e) for e in og_exclude]
for k, v in addons.items(): for k, v in addons.items():
@ -461,7 +469,9 @@ class MetadataFile(DataFile):
else: else:
logger.warning(f"Config Error: {add_key} Custom Key must have at least one Key") logger.warning(f"Config Error: {add_key} Custom Key must have at least one Key")
title_format = default_title_format title_format = default_title_format
if "title_format" in methods: if "title_format" in self.temp_vars:
title_format = util.parse("Config", "title_format", self.temp_vars["title_format"], parent="template_variable", default=default_title_format)
elif "title_format" in methods:
title_format = util.parse("Config", "title_format", dynamic, parent=map_name, methods=methods, default=default_title_format) title_format = util.parse("Config", "title_format", dynamic, parent=map_name, methods=methods, default=default_title_format)
if "<<key_name>>" not in title_format and "<<title>>" not in title_format: if "<<key_name>>" not in title_format and "<<title>>" not in title_format:
logger.error(f"Config Error: <<key_name>> not in title_format: {title_format} using default: {default_title_format}") logger.error(f"Config Error: <<key_name>> not in title_format: {title_format} using default: {default_title_format}")
@ -490,10 +500,22 @@ class MetadataFile(DataFile):
else: else:
self.templates[map_name] = default_template if default_template else default_templates[auto_type] self.templates[map_name] = default_template if default_template else default_templates[auto_type]
template_names = [map_name] template_names = [map_name]
remove_prefix = util.parse("Config", "remove_prefix", dynamic, parent=map_name, methods=methods, datatype="commalist") if "remove_prefix" in methods else [] remove_prefix = []
remove_suffix = util.parse("Config", "remove_suffix", dynamic, parent=map_name, methods=methods, datatype="commalist") if "remove_suffix" in methods else [] if "remove_prefix" in self.temp_vars:
remove_prefix = util.parse("Config", "remove_prefix", self.temp_vars["remove_prefix"], parent="template_variable", datatype="commalist")
elif "remove_prefix" in methods:
remove_prefix = util.parse("Config", "remove_prefix", dynamic, parent=map_name, methods=methods, datatype="commalist")
remove_suffix = []
if "remove_suffix" in self.temp_vars:
remove_suffix = util.parse("Config", "remove_suffix", self.temp_vars["remove_suffix"], parent="template_variable", datatype="commalist")
elif "remove_suffix" in methods:
remove_suffix = util.parse("Config", "remove_suffix", dynamic, parent=map_name, methods=methods, datatype="commalist")
sync = {i.title: i for i in self.library.search(libtype="collection", label=str(map_name))} if sync else {} sync = {i.title: i for i in self.library.search(libtype="collection", label=str(map_name))} if sync else {}
other_name = util.parse("Config", "other_name", dynamic, parent=map_name, methods=methods) if "other_name" in methods and include else None other_name = None
if "other_name" in self.temp_vars and include:
other_name = util.parse("Config", "other_name", self.temp_vars["remove_suffix"], parent="template_variable")
elif "other_name" in methods and include:
other_name = util.parse("Config", "other_name", dynamic, parent=map_name, methods=methods)
other_templates = util.parse("Config", "other_template", dynamic, parent=map_name, methods=methods, datatype="strlist") if "other_template" in methods and include else None other_templates = util.parse("Config", "other_template", dynamic, parent=map_name, methods=methods, datatype="strlist") if "other_template" in methods and include else None
if other_templates: if other_templates:
for other_template in other_templates: for other_template in other_templates:

@ -58,11 +58,11 @@ class Overlays:
if item.ratingKey not in overlay_to_keys[builder.overlay]: if item.ratingKey not in overlay_to_keys[builder.overlay]:
overlay_to_keys[builder.overlay].append(item.ratingKey) overlay_to_keys[builder.overlay].append(item.ratingKey)
if builder.supress_overlays: if builder.suppress_overlays:
for rk in overlay_to_keys[builder.overlay]: for rk in overlay_to_keys[builder.overlay]:
for supress_overlay in builder.supress_overlays: for suppress_overlay in builder.suppress_overlays:
if supress_overlay in overlay_to_keys and rk in overlay_to_keys[supress_overlay]: if suppress_overlay in overlay_to_keys and rk in overlay_to_keys[suppress_overlay]:
overlay_to_keys[supress_overlay].remove(rk) overlay_to_keys[suppress_overlay].remove(rk)
except Failed as e: except Failed as e:
logger.error(e) logger.error(e)

Loading…
Cancel
Save