This commit is contained in:
2025-06-06 17:13:51 +08:00
parent e73568a1fe
commit 0e029febdd
2 changed files with 34 additions and 4 deletions

View File

@@ -136,7 +136,7 @@ def convert_to_simai_folder(result,output_folder):
# 示例调用
if __name__ == "__main__":
music_ids = [11822]
music_ids = [111516]
output_folder = "result"
max_workers = 6 # 根据 CPU 和硬盘负载合理设置线程数

View File

@@ -47,7 +47,9 @@ def search_music_by_id(search_id):
# 曲绘(查 jacket 文件夹)
jacket_dir = os.path.join(rd, "AssetBundleImages", "jacket")
music_num = int(music_id)
if music_num >= 10000:
if music_num >= 100000:
jacket_ab = f"ui_jacket_{(music_num-100000) - 10000:06d}.ab"
elif music_num >= 10000:
jacket_ab = f"ui_jacket_{music_num - 10000:06d}.ab"
else:
jacket_ab = f"ui_jacket_{music_num:06d}.ab"
@@ -68,7 +70,9 @@ def search_music_by_id(search_id):
# 音频文件SoundData
sound_dir = os.path.join(rd, "SoundData")
music_num = int(music_id)
if music_num >= 10000:
if music_num >= 100000:
audio_prefix = f"music{(music_num-100000) - 10000:06d}"
elif music_num >= 10000:
audio_prefix = f"music{music_num - 10000:06d}"
else:
audio_prefix = f"music{music_num:06d}"
@@ -88,7 +92,9 @@ def search_music_by_id(search_id):
# 视频 dat 文件MovieData
movie_dir = os.path.join(rd, "MovieData")
music_num = int(music_id)
if music_num >= 10000:
if music_num >= 100000:
dat_name = f"{(music_num-100000) - 10000:06d}.dat"
elif music_num >= 10000:
dat_name = f"{music_num - 10000:06d}.dat"
else:
dat_name = f"{music_num:06d}.dat"
@@ -103,6 +109,30 @@ def search_music_by_id(search_id):
return None
def list_all_music():
music_list = []
for asset_dir in os.listdir(streaming_assets):
root_dir = os.path.join(streaming_assets, asset_dir)
music_dir = os.path.join(root_dir, "music")
if not os.path.isdir(music_dir):
continue
for music_subdir in os.listdir(music_dir):
sub_path = os.path.join(music_dir, music_subdir)
music_xml_path = os.path.join(sub_path, "Music.xml")
if not os.path.isfile(music_xml_path):
continue
music_id, name, artist, notes, version_name = parse_music_xml(music_xml_path)
music_list.append({
"id": music_id,
"name": name,
"artist": artist,
"version": version_name
})
return music_list
if __name__ == "__main__":