diff --git a/convert.py b/convert.py index a68dd5a..5bfabea 100644 --- a/convert.py +++ b/convert.py @@ -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 和硬盘负载合理设置线程数 diff --git a/search.py b/search.py index 333dd77..8805d04 100644 --- a/search.py +++ b/search.py @@ -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__":