utage: mission key generation and name finding
should be compatible with bingo's xdusuitecsharp
This commit is contained in:
parent
71e8c9d257
commit
6c455fe30b
6 changed files with 266 additions and 52 deletions
40
divatool.py
40
divatool.py
|
|
@ -1,11 +1,13 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
import utage
|
||||
|
||||
from adx import adx
|
||||
from utage import utage
|
||||
|
||||
LANGUAGES = ["jpn", "eng", "rus"]
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Unpack and process XDU data")
|
||||
|
|
@ -43,6 +45,20 @@ def main():
|
|||
dest="hex", action="store_true", default=False)
|
||||
parser_utage_crypt.add_argument("TARGET",
|
||||
help="Input", type=str)
|
||||
# utage translate
|
||||
parser_utage_translate = parser_utage_subparsers.add_parser("translate", help="Generate keyed tsv and json file")
|
||||
parser_utage_translate.add_argument("INPUT",
|
||||
help="Input", type=str)
|
||||
parser_utage_translate.add_argument("TSVDIR", nargs='?',
|
||||
help="_t.tsv output directory", type=str, default=".")
|
||||
parser_utage_translate.add_argument("JSONDIR", nargs='?',
|
||||
help="json output directory", type=str, default=".")
|
||||
# utage names
|
||||
parser_utage_names = parser_utage_subparsers.add_parser("names", help="Generate and update name files")
|
||||
parser_utage_names.add_argument("INPUT",
|
||||
help="Input", type=str)
|
||||
parser_utage_names.add_argument("OLD", nargs='?',
|
||||
help="Directory with old files", type=str, default="")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
|
@ -55,12 +71,24 @@ def main():
|
|||
key = bytearray(args.key, "utf-8")
|
||||
else:
|
||||
key = bytearray.fromhex(args.key)
|
||||
if path.isfile(args.TARGET):
|
||||
utage.crypt_file(args.TARGET, key, args.encrypt, args.ncomp)
|
||||
elif path.isdir(args.TARGET):
|
||||
utage.crypt_dir(args.TARGET, key, args.encrypt, args.ncomp)
|
||||
if os.path.isfile(args.TARGET):
|
||||
utage.crypt.crypt_file(args.TARGET, key, args.encrypt, args.ncomp)
|
||||
elif os.path.isdir(args.TARGET):
|
||||
utage.crypt.crypt_dir(args.TARGET, key, args.encrypt, args.ncomp)
|
||||
else:
|
||||
raise FileNotFoundError("Could not find {}".format(args.TARGET))
|
||||
elif args.subcommand == "translate":
|
||||
if os.path.isfile(args.INPUT):
|
||||
utage.translate.translate_file(args.INPUT, args.TSVDIR, args.JSONDIR)
|
||||
elif os.path.isdir(args.INPUT):
|
||||
utage.translate.translate_dir(args.INPUT, args.TSVDIR, args.JSONDIR)
|
||||
else:
|
||||
raise FileNotFoundError("Could not find {}".format(args.INPUT))
|
||||
elif args.subcommand == "names":
|
||||
if os.path.isdir(args.INPUT):
|
||||
utage.names.update_names(args.INPUT, args.OLD, LANGUAGES)
|
||||
else:
|
||||
raise FileNotFoundError(args.INPUT)
|
||||
|
||||
return 0
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue