Esempio n. 1
0
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
Esempio n. 2
0
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