mirror of
https://github.com/NinjaCheetah/WiiPy.git
synced 2025-04-26 13:21:01 -04:00
Cleaned up warnings related to error handling changes
This commit is contained in:
parent
6336791be0
commit
2733b70e18
@ -10,14 +10,12 @@ def handle_u8_pack(args):
|
||||
input_path = pathlib.Path(args.input)
|
||||
output_path = pathlib.Path(args.output)
|
||||
|
||||
u8_data = None
|
||||
try:
|
||||
u8_data = libWiiPy.archive.pack_u8(input_path)
|
||||
except ValueError:
|
||||
fatal_error(f"The specified input file/folder \"{input_path}\" does not exist!")
|
||||
|
||||
out_file = open(output_path, "wb")
|
||||
out_file.write(u8_data)
|
||||
out_file.close()
|
||||
output_path.write_bytes(u8_data)
|
||||
|
||||
print("U8 archive packed!")
|
||||
|
||||
@ -28,11 +26,8 @@ def handle_u8_unpack(args):
|
||||
|
||||
if not input_path.exists():
|
||||
fatal_error(f"The specified input file \"{input_path}\" does not exist!")
|
||||
|
||||
u8_data = open(input_path, "rb").read()
|
||||
|
||||
# Output path is deliberately not checked in any way because libWiiPy already has those checks, and it's easier
|
||||
# and cleaner to only have one component doing all the checks.
|
||||
libWiiPy.archive.extract_u8(u8_data, str(output_path))
|
||||
libWiiPy.archive.extract_u8(input_path.read_bytes(), str(output_path))
|
||||
|
||||
print("U8 archive unpacked!")
|
||||
|
@ -18,9 +18,9 @@ def handle_setting_decrypt(args):
|
||||
|
||||
# Load and decrypt the provided file.
|
||||
setting = libWiiPy.nand.SettingTxt()
|
||||
setting.load(open(input_path, "rb").read())
|
||||
setting.load(input_path.read_bytes())
|
||||
# Write out the decrypted data.
|
||||
open(output_path, "w").write(setting.dump_decrypted())
|
||||
output_path.write_text(setting.dump_decrypted())
|
||||
print("Successfully decrypted setting.txt!")
|
||||
|
||||
|
||||
@ -36,9 +36,9 @@ def handle_setting_encrypt(args):
|
||||
|
||||
# Load and encrypt the provided file.
|
||||
setting = libWiiPy.nand.SettingTxt()
|
||||
setting.load_decrypted(open(input_path, "r").read())
|
||||
setting.load_decrypted(input_path.read_text())
|
||||
# Write out the encrypted data.
|
||||
open(output_path, "wb").write(setting.dump())
|
||||
output_path.write_bytes(setting.dump())
|
||||
print("Successfully encrypted setting.txt!")
|
||||
|
||||
|
||||
|
@ -18,21 +18,21 @@ def handle_fakesign(args):
|
||||
|
||||
if input_path.suffix.lower() == ".tmd":
|
||||
tmd = libWiiPy.title.TMD()
|
||||
tmd.load(open(input_path, "rb").read())
|
||||
tmd.load(input_path.read_bytes())
|
||||
tmd.fakesign()
|
||||
open(output_path, "wb").write(tmd.dump())
|
||||
output_path.write_bytes(tmd.dump())
|
||||
print("TMD fakesigned successfully!")
|
||||
elif input_path.suffix.lower() == ".tik":
|
||||
tik = libWiiPy.title.Ticket()
|
||||
tik.load(open(input_path, "rb").read())
|
||||
tik.load(input_path.read_bytes())
|
||||
tik.fakesign()
|
||||
open(output_path, "wb").write(tik.dump())
|
||||
output_path.write_bytes(tik.dump())
|
||||
print("Ticket fakesigned successfully!")
|
||||
elif input_path.suffix.lower() == ".wad":
|
||||
title = libWiiPy.title.Title()
|
||||
title.load_wad(open(input_path, "rb").read())
|
||||
title.load_wad(input_path.read_bytes())
|
||||
title.fakesign()
|
||||
open(output_path, "wb").write(title.dump_wad())
|
||||
output_path.write_bytes(title.dump_wad())
|
||||
print("WAD fakesigned successfully!")
|
||||
else:
|
||||
fatal_error("The provided file does not appear to be a TMD, Ticket, or WAD and cannot be fakesigned!")
|
||||
|
@ -60,11 +60,16 @@ def _patch_drive_inquiry(ios_patcher: libWiiPy.title.IOSPatcher) -> int:
|
||||
|
||||
def handle_iospatch(args):
|
||||
input_path = pathlib.Path(args.input)
|
||||
if args.output is not None:
|
||||
output_path = pathlib.Path(args.output)
|
||||
else:
|
||||
output_path = pathlib.Path(args.input)
|
||||
|
||||
if not input_path.exists():
|
||||
fatal_error(f"The specified IOS file \"{input_path}\" does not exist!")
|
||||
|
||||
title = libWiiPy.title.Title()
|
||||
title.load_wad(open(input_path, "rb").read())
|
||||
title.load_wad(input_path.read_bytes())
|
||||
|
||||
tid = title.tmd.title_id
|
||||
if tid[:8] != "00000001" or tid[8:] == "00000001" or tid[8:] == "00000002":
|
||||
@ -117,14 +122,6 @@ def handle_iospatch(args):
|
||||
ios_patcher.title.content.content_records[ios_patcher.dip_module_index].content_type = 1
|
||||
|
||||
ios_patcher.title.fakesign() # Signature is broken anyway, so fakesign for maximum installation openings
|
||||
if args.output is not None:
|
||||
output_path = pathlib.Path(args.output)
|
||||
output_file = open(output_path, "wb")
|
||||
output_file.write(ios_patcher.title.dump_wad())
|
||||
output_file.close()
|
||||
else:
|
||||
output_file = open(input_path, "wb")
|
||||
output_file.write(ios_patcher.title.dump_wad())
|
||||
output_file.close()
|
||||
output_path.write_bytes(ios_patcher.title.dump_wad())
|
||||
|
||||
print("IOS successfully patched!")
|
||||
|
@ -133,6 +133,7 @@ def handle_nus_content(args):
|
||||
|
||||
# Only accepting the 000000xx format because it's the one that would be most commonly known, rather than using the
|
||||
# actual integer that the hex Content ID translates to.
|
||||
content_id = None
|
||||
try:
|
||||
content_id = int.from_bytes(binascii.unhexlify(cid))
|
||||
except binascii.Error:
|
||||
@ -151,6 +152,7 @@ def handle_nus_content(args):
|
||||
|
||||
# Try to download the content, and catch the ValueError libWiiPy will throw if it can't be found.
|
||||
print("Downloading content with Content ID " + cid + "...")
|
||||
content_data = None
|
||||
try:
|
||||
content_data = libWiiPy.title.download_content(tid, content_id)
|
||||
except ValueError:
|
||||
@ -161,6 +163,7 @@ def handle_nus_content(args):
|
||||
tmd = libWiiPy.title.TMD()
|
||||
tmd.load(libWiiPy.title.download_tmd(tid, version))
|
||||
# Try to get a Ticket for the title, if a common one is available.
|
||||
ticket = None
|
||||
try:
|
||||
ticket = libWiiPy.title.Ticket()
|
||||
ticket.load(libWiiPy.title.download_ticket(tid, wiiu_endpoint=True))
|
||||
@ -200,13 +203,12 @@ def handle_nus_tmd(args):
|
||||
tid = args.tid
|
||||
|
||||
# Check if --version was passed, because it'll be None if it wasn't.
|
||||
version = None
|
||||
if args.version is not None:
|
||||
try:
|
||||
version = int(args.version)
|
||||
except ValueError:
|
||||
fatal_error("The specified TMD version must be a valid integer!")
|
||||
else:
|
||||
version = None
|
||||
|
||||
# Use the supplied output path if one was specified, otherwise generate one using the Title ID. If a version has
|
||||
# been specified, append the version to the end of the path as well.
|
||||
@ -220,6 +222,7 @@ def handle_nus_tmd(args):
|
||||
|
||||
# Try to download the TMD, and catch the ValueError libWiiPy will throw if it can't be found.
|
||||
print(f"Downloading TMD for title {tid}...")
|
||||
tmd_data = None
|
||||
try:
|
||||
tmd_data = libWiiPy.title.download_tmd(tid, version)
|
||||
except ValueError:
|
||||
|
@ -45,6 +45,7 @@ def handle_wad_add(args):
|
||||
print(f"Using randomly assigned Content ID \"{target_cid:08X}\" since none were provided.")
|
||||
|
||||
# Get the type of the new content.
|
||||
target_type = libWiiPy.title.ContentType.NORMAL
|
||||
if args.type is not None:
|
||||
match str.lower(args.type):
|
||||
case "normal":
|
||||
@ -55,8 +56,6 @@ def handle_wad_add(args):
|
||||
target_type = libWiiPy.title.ContentType.DLC
|
||||
case _:
|
||||
fatal_error(f"The provided content type \"{args.type}\" is not valid!")
|
||||
else:
|
||||
target_type = libWiiPy.title.ContentType.NORMAL
|
||||
|
||||
# Call add_content to add our new content with the set parameters.
|
||||
title.add_content(content_data, target_cid, target_type)
|
||||
@ -70,6 +69,7 @@ def handle_wad_add(args):
|
||||
|
||||
def handle_wad_convert(args):
|
||||
input_path = pathlib.Path(args.input)
|
||||
target = None
|
||||
if args.dev:
|
||||
target = "development"
|
||||
elif args.retail:
|
||||
@ -79,6 +79,7 @@ def handle_wad_convert(args):
|
||||
else:
|
||||
fatal_error("No valid encryption target was specified!")
|
||||
|
||||
output_path = pathlib.Path(args.output)
|
||||
if args.output is None:
|
||||
match target:
|
||||
case "development":
|
||||
@ -89,8 +90,6 @@ def handle_wad_convert(args):
|
||||
output_path = pathlib.Path(input_path.stem + "_vWii" + input_path.suffix)
|
||||
case _:
|
||||
fatal_error("No valid encryption target was specified!")
|
||||
else:
|
||||
output_path = pathlib.Path(args.output)
|
||||
|
||||
if not input_path.exists():
|
||||
fatal_error(f"The specified WAD file \"{input_path}\" does not exist!")
|
||||
@ -276,6 +275,7 @@ def handle_wad_set(args):
|
||||
content_data = content_path.read_bytes()
|
||||
|
||||
# Get the new type of the content, if one was specified.
|
||||
target_type = None
|
||||
if args.type is not None:
|
||||
match str.lower(args.type):
|
||||
case "normal":
|
||||
@ -286,8 +286,6 @@ def handle_wad_set(args):
|
||||
target_type = libWiiPy.title.ContentType.DLC
|
||||
case _:
|
||||
fatal_error(f"The provided content type \"{args.type}\" is not valid!\"")
|
||||
else:
|
||||
target_type = None
|
||||
|
||||
if args.index is not None:
|
||||
# If we're replacing based on the index, then make sure the specified index exists.
|
||||
|
Loading…
x
Reference in New Issue
Block a user