mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-10 06:54:21 +00:00
Fix #608 checks preferences before changing advance settings
This commit is contained in:
parent
6178667455
commit
914082aea4
2 changed files with 16 additions and 19 deletions
|
@ -2074,10 +2074,11 @@ class CollectionBuilder:
|
|||
path = path[:-1] if path.endswith(('/', '\\')) else path
|
||||
tvdb_paths.append((self.library.show_rating_key_map[item.ratingKey], path))
|
||||
advance_edits = {}
|
||||
prefs = [p.id for p in item.preferences()]
|
||||
for method_name, method_data in self.item_details.items():
|
||||
if method_name in plex.item_advance_keys:
|
||||
key, options = plex.item_advance_keys[method_name]
|
||||
if getattr(item, key) != options[method_data]:
|
||||
if key in prefs and getattr(item, key) != options[method_data]:
|
||||
advance_edits[key] = options[method_data]
|
||||
self.library.edit_item(item, item.title, self.collection_level.capitalize(), advance_edits, advanced=True)
|
||||
|
||||
|
|
|
@ -294,7 +294,6 @@ class MetadataFile(DataFile):
|
|||
|
||||
updated = False
|
||||
edits = {}
|
||||
advance_edits = {}
|
||||
|
||||
def add_edit(name, current_item, group, alias, key=None, value=None, var_type="str"):
|
||||
if value or name in alias:
|
||||
|
@ -334,21 +333,6 @@ class MetadataFile(DataFile):
|
|||
else:
|
||||
logger.error(f"Metadata Error: {name} attribute is blank")
|
||||
|
||||
def add_advanced_edit(attr, obj, group, alias, new_agent=False):
|
||||
key, options = plex.item_advance_keys[f"item_{attr}"]
|
||||
if attr in alias:
|
||||
if new_agent and self.library.agent not in plex.new_plex_agents:
|
||||
logger.error(f"Metadata Error: {attr} attribute only works for with the New Plex Movie Agent and New Plex TV Agent")
|
||||
elif group[alias[attr]]:
|
||||
method_data = str(group[alias[attr]]).lower()
|
||||
if method_data not in options:
|
||||
logger.error(f"Metadata Error: {group[alias[attr]]} {attr} attribute invalid")
|
||||
elif getattr(obj, key) != options[method_data]:
|
||||
advance_edits[key] = options[method_data]
|
||||
logger.info(f"Detail: {attr} updated to {method_data}")
|
||||
else:
|
||||
logger.error(f"Metadata Error: {attr} attribute is blank")
|
||||
|
||||
logger.info("")
|
||||
util.separator()
|
||||
logger.info("")
|
||||
|
@ -454,9 +438,21 @@ class MetadataFile(DataFile):
|
|||
updated = True
|
||||
|
||||
advance_edits = {}
|
||||
prefs = [p.id for p in item.preferences()]
|
||||
for advance_edit in advance_tags_to_edit[self.library.type]:
|
||||
is_new_agent = advance_edit in ["metadata_language", "use_original_title"]
|
||||
add_advanced_edit(advance_edit, item, meta, methods, new_agent=is_new_agent)
|
||||
key, options = plex.item_advance_keys[f"item_{advance_edit}"]
|
||||
if advance_edit in methods:
|
||||
if advance_edit in ["metadata_language", "use_original_title"] and self.library.agent not in plex.new_plex_agents:
|
||||
logger.error(f"Metadata Error: {advance_edit} attribute only works for with the New Plex Movie Agent and New Plex TV Agent")
|
||||
elif meta[methods[advance_edit]]:
|
||||
method_data = str(meta[methods[advance_edit]]).lower()
|
||||
if method_data not in options:
|
||||
logger.error(f"Metadata Error: {meta[methods[advance_edit]]} {advance_edit} attribute invalid")
|
||||
elif key in prefs and getattr(item, key) != options[method_data]:
|
||||
advance_edits[key] = options[method_data]
|
||||
logger.info(f"Detail: {advance_edit} updated to {method_data}")
|
||||
else:
|
||||
logger.error(f"Metadata Error: {advance_edit} attribute is blank")
|
||||
if self.library.edit_item(item, mapping_name, self.library.type, advance_edits, advanced=True):
|
||||
updated = True
|
||||
|
||||
|
|
Loading…
Reference in a new issue