mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-10 06:54:21 +00:00
[16] fix metadata_backup
This commit is contained in:
parent
92fa57e060
commit
6cb1d33805
2 changed files with 16 additions and 21 deletions
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.16.0-develop15
|
||||
1.16.0-develop16
|
||||
|
|
|
@ -737,32 +737,27 @@ def library_operations(config, library):
|
|||
logger.info("")
|
||||
logger.info(f"Metadata Backup Path: {library.metadata_backup['path']}")
|
||||
logger.info("")
|
||||
try:
|
||||
meta, _, _ = yaml.util.load_yaml_guess_indent(open(library.metadata_backup["path"]))
|
||||
except yaml.scanner.ScannerError as e:
|
||||
meta = {}
|
||||
logger.error(f"YAML Error: {util.tab_new_lines(e)}")
|
||||
filename, file_extension = os.path.splitext(library.metadata_backup["path"])
|
||||
i = 1
|
||||
while os.path.exists(f"{filename}{i}{file_extension}"):
|
||||
i += 1
|
||||
os.rename(library.metadata_backup["path"], f"{filename}{i}{file_extension}")
|
||||
logger.error(f"Backup failed to load saving copy to {filename}{i}{file_extension}")
|
||||
if "metadata" not in meta:
|
||||
meta["metadata"] = {}
|
||||
meta = {"metadata": {}}
|
||||
if os.path.exists(library.metadata_backup["path"]):
|
||||
try:
|
||||
meta, _, _ = yaml.util.load_yaml_guess_indent(open(library.metadata_backup["path"]))
|
||||
except yaml.scanner.ScannerError as e:
|
||||
logger.error(f"YAML Error: {util.tab_new_lines(e)}")
|
||||
filename, file_extension = os.path.splitext(library.metadata_backup["path"])
|
||||
i = 1
|
||||
while os.path.exists(f"{filename}{i}{file_extension}"):
|
||||
i += 1
|
||||
os.rename(library.metadata_backup["path"], f"{filename}{i}{file_extension}")
|
||||
logger.error(f"Backup failed to load saving copy to {filename}{i}{file_extension}")
|
||||
items = library.get_all(load=True)
|
||||
titles = [i.title for i in items]
|
||||
for i, item in enumerate(items, 1):
|
||||
logger.ghost(f"Processing: {i}/{len(items)} {item.title}")
|
||||
map_key, attrs = library.get_locked_attributes(item, titles)
|
||||
if attrs or library.metadata_backup["add_blank_entries"]:
|
||||
def run_dict(save_dict, the_dict):
|
||||
for kk, vv in the_dict.items():
|
||||
if isinstance(vv, dict):
|
||||
run_dict(save_dict[kk], vv)
|
||||
else:
|
||||
save_dict[kk] = vv
|
||||
run_dict(meta["metadata"][map_key], attrs)
|
||||
def get_dict(attrs_dict):
|
||||
return {ak: get_dict(av) if isinstance(av, dict) else av for ak, av in attrs_dict.items()} if isinstance(attrs_dict, dict) else attrs_dict
|
||||
meta["metadata"][map_key] = get_dict(attrs)
|
||||
logger.exorcise()
|
||||
try:
|
||||
yaml.round_trip_dump(meta, open(library.metadata_backup["path"], "w", encoding="utf-8"), block_seq_indent=2)
|
||||
|
|
Loading…
Reference in a new issue