def legacy_metadata_fixer(formatted_directories: dict, api: object) -> media_types: legacy_metadatas = formatted_directories["legacy_metadatas"] new_metadata_directory = formatted_directories["metadata_directory"] old_metadata_directory = os.path.dirname( legacy_metadatas["legacy_metadata"]) metadata_name = os.path.basename(f"{old_metadata_directory}.json") q = [] for key, legacy_directory in legacy_metadatas.items(): if legacy_directory == formatted_directories["metadata_directory"]: continue if os.path.exists(legacy_directory): folders = os.listdir(legacy_directory) metadata_names = media_types() metadata_names = [f"{k}.json" for k, v in metadata_names] print type_one_files = main_helper.remove_mandatory_files( folders, keep=metadata_names) new_format = [] for type_one_file in type_one_files: legacy_metadata_path = os.path.join(legacy_directory, type_one_file) legacy_metadata = import_archive(legacy_metadata_path) if "type" not in legacy_metadata: legacy_type_key = type_one_file.removesuffix(".json") legacy_metadata["type"] = legacy_type_key print for key, status in legacy_metadata.items(): if key == "type": continue status.sort(key=lambda x: x["post_id"], reverse=False) legacy_metadata[key] = [ list(g) for k, g in groupby(status, key=lambda x: x["post_id"]) ] status = legacy_metadata[key] new_format.append(legacy_metadata) old_metadata_object = prepare_metadata(new_format, api=api).metadata if legacy_directory != new_metadata_directory: import_path = os.path.join(legacy_directory, metadata_name) new_metadata_set = import_archive(import_path) if new_metadata_set: new_metadata_object2 = prepare_metadata(new_metadata_set, api=api).metadata print old_metadata_object = compare_metadata( new_metadata_object2, old_metadata_object) print q.append(old_metadata_object) print print results = media_types() for merge_into in q: print results = compare_metadata(results, merge_into) print print return results
def legacy_metadata_fixer(formatted_directories: dict, api: object) -> tuple[create_metadata, list]: delete_legacy_metadatas = [] legacy_metadatas = formatted_directories["legacy_metadatas"] new_metadata_directory = formatted_directories["metadata_directory"] old_metadata_directory = os.path.dirname( legacy_metadatas["legacy_metadata"]) metadata_name = os.path.basename(f"{old_metadata_directory}.json") q = [] for key, legacy_directory in legacy_metadatas.items(): if legacy_directory == formatted_directories["metadata_directory"]: continue if os.path.exists(legacy_directory): folders = os.listdir(legacy_directory) metadata_names = media_types() metadata_names = [f"{k}.json" for k, v in metadata_names] print type_one_files = main_helper.remove_mandatory_files( folders, keep=metadata_names) new_format = [] for type_one_file in type_one_files: api_type = type_one_file.removesuffix(".json") legacy_metadata_path = os.path.join( legacy_directory, type_one_file) legacy_metadata = import_archive(legacy_metadata_path) if legacy_metadata: delete_legacy_metadatas.append(legacy_metadata_path) legacy_metadata = create_metadata( api, legacy_metadata, api_type=api_type).convert() new_format.append(legacy_metadata) new_format = dict( merge({}, *new_format, strategy=Strategy.ADDITIVE)) old_metadata_object = create_metadata(api, new_format) if legacy_directory != new_metadata_directory: import_path = os.path.join(legacy_directory, metadata_name) new_metadata_set = import_archive( import_path) if new_metadata_set: new_metadata_object2 = create_metadata( api, new_metadata_set) old_metadata_object = compare_metadata( new_metadata_object2, old_metadata_object) q.append(old_metadata_object) print print results = create_metadata() for merge_into in q: print results = compare_metadata( results, merge_into) print print return results, delete_legacy_metadatas