1
0
mirror of synced 2024-12-18 09:15:54 +01:00
bemaniutils/bemani/utils/iidxutils.py

50 lines
1.2 KiB
Python

import argparse
from bemani.format import IIDXMusicDB
def main() -> None:
parser = argparse.ArgumentParser(
description="A utility to patch a IIDX music database."
)
parser.add_argument(
"infile",
help="Music DB to work with.",
type=str,
)
parser.add_argument(
"outfile",
help="Music DB to overwrite.",
type=str,
)
parser.add_argument(
"--hide-leggendarias",
help="Hide leggendarias in normal folders.",
action="store_true",
)
args = parser.parse_args()
rfp = open(args.infile, "rb")
data = rfp.read()
rfp.close()
db = IIDXMusicDB(data)
if args.hide_leggendarias:
for song in db.songs:
if song.title[-1:] == "" or (
song.difficulties[0] == 0
and song.difficulties[1] == 0
and song.difficulties[2] == 12
):
print(f"Patching '{song.title}' to only appear in leggendaria folder!")
song.folder = 0x5C
print("Generating new database file...")
wfp = open(args.outfile, "wb")
wfp.write(db.get_new_db())
wfp.close()
if __name__ == "__main__":
main()