diff --git a/main.py b/main.py index 52850c7..7eafd5d 100644 --- a/main.py +++ b/main.py @@ -3,6 +3,7 @@ import sys from modules.wad import * +from modules.nus import * opts = [opt for opt in sys.argv[1:] if opt.startswith("-")] args = [arg for arg in sys.argv[1:] if not arg.startswith("-")] @@ -18,5 +19,14 @@ if __name__ == "__main__": pack_wad_from_folder(args[1], args[2]) exit(0) raise SystemExit(f"Usage: {sys.argv[0]} WAD (-u | -p) ") + elif "NUS" in args: + if "-d" in opts: + if len(args) == 2: + download_title(args[1]) + exit(0) + elif len(args) == 3: + download_title(args[1], args[2]) + exit(0) + raise SystemExit(f"Usage: {sys.argv[0]} NUS -d <Title Version (Optional)>") else: raise SystemExit(f"Usage: {sys.argv[0]} WAD (-u | -p) <input> <output>") diff --git a/modules/nus.py b/modules/nus.py new file mode 100644 index 0000000..c5ded5e --- /dev/null +++ b/modules/nus.py @@ -0,0 +1,22 @@ +# "nus.py" from libWiiPy-cli by NinjaCheetah +# https://github.com/NinjaCheetah/libWiiPy-cli + +import libWiiPy + + +def download_title(title_id: str, title_version_input: str = None): + title_version = None + if title_version_input is not None: + try: + title_version = int(title_version_input) + except ValueError: + print("Enter a valid integer for the Title Version.") + return + + title = libWiiPy.download_title(title_id, title_version) + + file_name = title_id + "-v" + str(title.tmd.title_version) + ".wad" + + wad_file = open(file_name, "wb") + wad_file.write(title.dump_wad()) + wad_file.close() diff --git a/requirements.txt b/requirements.txt index 0c02c3d..0dc1008 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1 @@ git+https://github.com/NinjaCheetah/libWiiPy -pycryptodome \ No newline at end of file