almost finish

This commit is contained in:
Burgess Leo
2025-05-23 13:54:31 +08:00
parent 1fb457b67d
commit d4a411ce68
6 changed files with 559 additions and 242 deletions

View File

@@ -43,14 +43,14 @@ def GetFilesDBPathInfo(db_path: str = "../src/db_ntfs_info.db",
# if __name__ == "__main__":
# test_files = [
# r"Y:\CloudMusic\AGA - MIZU.mp3",
# r"Y:\CloudMusic\AGA - 一.mp3",
# r"Y:\CloudMusic\Aaron Zigman - Main Title.mp3",
# r"Y:\CloudMusic\Anson Seabra - Keep Your Head Up Princess.mp3",
# r"Y:\CloudMusic\Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3",
# r"Y:\CloudMusic\Ava Max - Sweet but Psycho.mp3",
# r"Y:\CloudMusic\Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3",
# r"Y:\CloudMusic\Color Music Choir - Something Just Like This (Live).mp3"
# r"CloudMusic/AGA - MIZU.mp3",
# r"CloudMusic/AGA - 一.mp3",
# r"CloudMusic/Aaron Zigman - Main Title.mp3",
# r"CloudMusic/Anson Seabra - Keep Your Head Up Princess.mp3",
# r"CloudMusic/Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3",
# r"CloudMusic/Ava Max - Sweet but Psycho.mp3",
# r"CloudMusic/Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3",
# r"CloudMusic/Color Music Choir - Something Just Like This (Live).mp3"
# ]
#
# result = GetFilesDBPathInfo(files_path=test_files)
@@ -123,27 +123,27 @@ def GetFilesDBNodeInfo(db_path: str = "../src/db_ntfs_info.db", table_name: str
return results
# if __name__ == "__main__":
# test_files = [
# r"Y:\CloudMusic\AGA - MIZU.mp3",
# r"Y:\CloudMusic\AGA - 一.mp3",
# r"Y:\CloudMusic\Aaron Zigman - Main Title.mp3",
# r"Y:\CloudMusic\Anson Seabra - Keep Your Head Up Princess.mp3",
# r"Y:\CloudMusic\Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3",
# r"Y:\CloudMusic\Ava Max - Sweet but Psycho.mp3",
# r"Y:\CloudMusic\Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3",
# r"Y:\CloudMusic\Color Music Choir - Something Just Like This (Live).mp3"
# ]
#
# # 第一步:获取 db_path 表中的 ID 和 Name
# path_info = GetFilesDBPathInfo(files_path=test_files)
#
# # 第二步:根据 PathID 查询 db_node 表中的分片信息
# file_extents_info = GetFilesDBNodeInfo(path_records=path_info)
#
# # 打印结果
# for item in file_extents_info:
# print(item)
if __name__ == "__main__":
test_files = [
r"CloudMusic/AGA - MIZU.mp3",
r"CloudMusic/AGA - 一.mp3",
r"CloudMusic/Aaron Zigman - Main Title.mp3",
r"CloudMusic/Anson Seabra - Keep Your Head Up Princess.mp3",
r"CloudMusic/Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3",
r"CloudMusic/Ava Max - Sweet but Psycho.mp3",
r"CloudMusic/Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3",
r"CloudMusic/Color Music Choir - Something Just Like This (Live).mp3"
]
# 第一步:获取 db_path 表中的 ID 和 Name
path_info = GetFilesDBPathInfo(files_path=test_files)
# 第二步:根据 PathID 查询 db_node 表中的分片信息
file_extents_info = GetFilesDBNodeInfo(path_records=path_info)
# 打印结果
for item in file_extents_info:
print(item)
def sort_fragments_by_start_byte(file_extents_list: list) -> list:
@@ -181,52 +181,52 @@ def sort_fragments_by_start_byte(file_extents_list: list) -> list:
return all_fragments
if __name__ == "__main__":
test_files = [
r"CloudMusic\AGA - MIZU.mp3",
r"CloudMusic\AGA - 一.mp3",
r"CloudMusic\Aaron Zigman - Main Title.mp3",
r"CloudMusic\Anson Seabra - Keep Your Head Up Princess.mp3",
r"CloudMusic\Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3",
r"CloudMusic\Ava Max - Sweet but Psycho.mp3",
r"CloudMusic\Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3",
r"CloudMusic\Color Music Choir - Something Just Like This (Live).mp3"
]
test_files_sort = [
{'absolute_path': 'CloudMusic\\AGA - MIZU.mp3', 'name': 'AGA - MIZU.mp3', 'path_id': 6, 'extent_count': 1,
'fragments': [{'start_byte': 694849536, 'length': 8126464}]},
{'absolute_path': 'CloudMusic\\AGA - 一.mp3', 'name': 'AGA - 一.mp3', 'path_id': 7, 'extent_count': 2,
'fragments': [{'start_byte': 702976000, 'length': 10870784}, {'start_byte': 23162880, 'length': 69632}]},
{'absolute_path': 'CloudMusic\\Aaron Zigman - Main Title.mp3', 'name': 'Aaron Zigman - Main Title.mp3',
'path_id': 5, 'extent_count': 1, 'fragments': [{'start_byte': 687685632, 'length': 7163904}]},
{'absolute_path': 'CloudMusic\\Anson Seabra - Keep Your Head Up Princess.mp3',
'name': 'Anson Seabra - Keep Your Head Up Princess.mp3', 'path_id': 8, 'extent_count': 1,
'fragments': [{'start_byte': 713846784, 'length': 7970816}]},
{'absolute_path': 'CloudMusic\\Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3',
'name': 'Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3', 'path_id': 9,
'extent_count': 1, 'fragments': [{'start_byte': 721817600, 'length': 9179136}]},
{'absolute_path': 'CloudMusic\\Ava Max - Sweet but Psycho.mp3', 'name': 'Ava Max - Sweet but Psycho.mp3',
'path_id': 10, 'extent_count': 1, 'fragments': [{'start_byte': 731000832, 'length': 7938048}]},
{'absolute_path': 'CloudMusic\\Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3',
'name': 'Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3', 'path_id': 11, 'extent_count': 1,
'fragments': [{'start_byte': 738938880, 'length': 6791168}]},
{'absolute_path': 'CloudMusic\\Color Music Choir - Something Just Like This (Live).mp3',
'name': 'Color Music Choir - Something Just Like This (Live).mp3', 'path_id': 12, 'extent_count': 1,
'fragments': [{'start_byte': 745730048, 'length': 6193152}]}]
path_info = GetFilesDBPathInfo(files_path=test_files)
file_extents_data = GetFilesDBNodeInfo(path_records=path_info)
# 根据文件片段先后排序
single_fragment_result = sort_fragments_by_start_byte(file_extents_data)
# 模拟多文件片段,根据文件片段先后排序
multi_fragment_result = sort_fragments_by_start_byte(test_files_sort)
print("单文件片段排序结果:")
for item in single_fragment_result:
print(item)
print("\n多文件片段排序结果:")
for item in multi_fragment_result:
print(item)
# if __name__ == "__main__":
# test_files = [
# r"CloudMusic/AGA - MIZU.mp3",
# r"CloudMusic/AGA - 一.mp3",
# r"CloudMusic/Aaron Zigman - Main Title.mp3",
# r"CloudMusic/Anson Seabra - Keep Your Head Up Princess.mp3",
# r"CloudMusic/Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3",
# r"CloudMusic/Ava Max - Sweet but Psycho.mp3",
# r"CloudMusic/Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3",
# r"CloudMusic/Color Music Choir - Something Just Like This (Live).mp3"
# ]
# test_files_sort = [
# {'absolute_path': 'CloudMusic/AGA - MIZU.mp3', 'name': 'AGA - MIZU.mp3', 'path_id': 6, 'extent_count': 1,
# 'fragments': [{'start_byte': 694849536, 'length': 8126464}]},
# {'absolute_path': 'CloudMusic/AGA - 一.mp3', 'name': 'AGA - 一.mp3', 'path_id': 7, 'extent_count': 2,
# 'fragments': [{'start_byte': 702976000, 'length': 10870784}, {'start_byte': 23162880, 'length': 69632}]},
# {'absolute_path': 'CloudMusic/Aaron Zigman - Main Title.mp3', 'name': 'Aaron Zigman - Main Title.mp3',
# 'path_id': 5, 'extent_count': 1, 'fragments': [{'start_byte': 687685632, 'length': 7163904}]},
# {'absolute_path': 'CloudMusic/Anson Seabra - Keep Your Head Up Princess.mp3',
# 'name': 'Anson Seabra - Keep Your Head Up Princess.mp3', 'path_id': 8, 'extent_count': 1,
# 'fragments': [{'start_byte': 713846784, 'length': 7970816}]},
# {'absolute_path': 'CloudMusic/Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3',
# 'name': 'Anthony Keyrouz,Romy Wave - Something Just Like This (feat. Romy Wave).mp3', 'path_id': 9,
# 'extent_count': 1, 'fragments': [{'start_byte': 721817600, 'length': 9179136}]},
# {'absolute_path': 'CloudMusic/Ava Max - Sweet but Psycho.mp3', 'name': 'Ava Max - Sweet but Psycho.mp3',
# 'path_id': 10, 'extent_count': 1, 'fragments': [{'start_byte': 731000832, 'length': 7938048}]},
# {'absolute_path': 'CloudMusic/Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3',
# 'name': 'Cecilia Cheung - Turn Into Fireworks and Fall for You.mp3', 'path_id': 11, 'extent_count': 1,
# 'fragments': [{'start_byte': 738938880, 'length': 6791168}]},
# {'absolute_path': 'CloudMusic/Color Music Choir - Something Just Like This (Live).mp3',
# 'name': 'Color Music Choir - Something Just Like This (Live).mp3', 'path_id': 12, 'extent_count': 1,
# 'fragments': [{'start_byte': 745730048, 'length': 6193152}]}]
#
# path_info = GetFilesDBPathInfo(files_path=test_files)
# file_extents_data = GetFilesDBNodeInfo(path_records=path_info)
#
# # 根据文件片段先后排序
# single_fragment_result = sort_fragments_by_start_byte(file_extents_data)
#
# # 模拟多文件片段,根据文件片段先后排序
# multi_fragment_result = sort_fragments_by_start_byte(test_files_sort)
#
# print("单文件片段排序结果:")
# for item in single_fragment_result:
# print(item)
#
# print("\n多文件片段排序结果:")
# for item in multi_fragment_result:
# print(item)