[44] Merge remote-tracking branch 'ymendel/ym/add-mapping-sort' into nightly

pull/1949/head
meisnate12 8 months ago
commit c1087db2c2

@ -210,7 +210,7 @@ In addition, templates also have a few special attributes that they can use:
<div id="move-prefix" />The `move_prefix` attribute can be used to specify a list or comma-separated string of <div id="move-prefix" />The `move_prefix` attribute can be used to specify a list or comma-separated string of
prefixes to move to the end of the collection/playlist name for sorting. This changes the template variables prefixes to move to the end of the collection/playlist name for sorting. This changes the template variables
`collection_sort` and `playlist_sort`. `collection_sort`, `playlist_sort`, and `mapping_sort`.
???+ example "Example" ???+ example "Example"
@ -241,6 +241,7 @@ Every template also has access to these template variables:
* Either `<<collection_name>>`, `<<playlist_name>>`, or `<<overlay_name>>` which is the name of the definition. * Either `<<collection_name>>`, `<<playlist_name>>`, or `<<overlay_name>>` which is the name of the definition.
* `<<mapping_name>>` is the original mapping name for the definition in the YAML file. * `<<mapping_name>>` is the original mapping name for the definition in the YAML file.
* Either `<<collection_sort>>` or `<<playlist_sort>>` which is the name of the definition after `move_prefix` is applied. * Either `<<collection_sort>>` or `<<playlist_sort>>` which is the name of the definition after `move_prefix` is applied.
* `<<mapping_sort>>` which is the original mapping name for the definition after `move_prefix` is applied.
* `<<library_type>>` which is the library type (`movie`, `show`, `artist`, `video`). * `<<library_type>>` which is the library type (`movie`, `show`, `artist`, `video`).
* `<<library_name>>` which is the name of the library. * `<<library_name>>` which is the name of the library.
* All template variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex. * All template variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex.

@ -440,6 +440,7 @@ class DataFile:
optional.append(f"{final_key}_encoded") optional.append(f"{final_key}_encoded")
sort_name = None sort_name = None
sort_mapping = None
if "move_prefix" in template or "move_collection_prefix" in template: if "move_prefix" in template or "move_collection_prefix" in template:
prefix = None prefix = None
if "move_prefix" in template: if "move_prefix" in template:
@ -450,12 +451,15 @@ class DataFile:
prefix = template["move_collection_prefix"] prefix = template["move_collection_prefix"]
if prefix: if prefix:
for op in util.get_list(prefix): for op in util.get_list(prefix):
if variables[name_var].startswith(f"{op} "): if not sort_name and variables[name_var].startswith(f"{op} "):
sort_name = f"{variables[name_var][len(op):].strip()}, {op}" sort_name = f"{variables[name_var][len(op):].strip()}, {op}"
break if not sort_mapping and variables["mapping_name"].startswith(f"{op} "):
sort_mapping = f"{variables['mapping_name'][len(op):].strip()}, {op}"
break if sort_name and sort_mapping
else: else:
raise Failed(f"{self.data_type} Error: template sub-attribute move_prefix is blank") raise Failed(f"{self.data_type} Error: template sub-attribute move_prefix is blank")
variables[f"{self.data_type.lower()}_sort"] = sort_name if sort_name else variables[name_var] variables[f"{self.data_type.lower()}_sort"] = sort_name if sort_name else variables[name_var]
variables["mapping_sort"] = sort_mapping if sort_mapping else variables["mapping_name"]
for key, value in variables.copy().items(): for key, value in variables.copy().items():
if "<<" in key and ">>" in key: if "<<" in key and ">>" in key:

Loading…
Cancel
Save