From beb8feede8b0dec01bf4bbff35d2e9288495f237 Mon Sep 17 00:00:00 2001 From: Farewell_ Date: Mon, 20 Nov 2023 16:33:41 +0100 Subject: [PATCH] Updated checkDatatables.py, added language switch --- README.md | 10 ++++- checkDatatables.py | 103 +++++++++++++++++---------------------------- 2 files changed, 46 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index d9c6ed3..aa0da42 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,8 @@ py sortAlphabetically.py --restore ## checkDatatables.py -This script generates a comprehensive list of various informations regarding your database files. It is meant to be used for basic checks such as: +This script generates a comprehensive list of various informations regarding your database files for a given language. +It is meant to be used for basic checks such as: * Listing the amount of songs in your tables * Listing all vacant entries bellow 1599 to facilitate adding songs in @@ -80,8 +81,13 @@ This script generates a comprehensive list of various informations regarding you * Checking for id and uniqueId mismatches in various files * Checking for missing sound and fumen files +Possible languages are : japaneseText, englishUsText, chineseTText, chineseSText and koreanText. + To run this one you simply need to call it like so: -> py checkDatatables.py +```py +# Check datatables +py checkDatatables.py --language "englishUsText" +``` The output will be written in a file named `checks.json` diff --git a/checkDatatables.py b/checkDatatables.py index c8048be..a9984e9 100644 --- a/checkDatatables.py +++ b/checkDatatables.py @@ -1,8 +1,6 @@ +from argparse import ArgumentParser from enum import Enum -import gzip -from encryption import decrypt_file import json -import os from helpers import ( doesPathExist, @@ -13,12 +11,29 @@ from helpers import ( loadFile, ) -# "japaneseText" -# "englishUsText" -# "chineseTText" -# "koreanText" -# "chineseSText" -language = "englishUsText" +if __name__ == "__main__": + parser = ArgumentParser() + parser.add_argument( + "-l", + "--language", + default="englishUsText", + help="This sets the language used for sorting the files. Possible values are : japaneseText, englishUsText, chineseTText, chineseSText and koreanText", + ) + + args = parser.parse_args() + language = args.language + + if language not in [ + "japaneseText", + "englishUsText", + "chineseTText", + "chineseSText", + "koreanText", + ]: + print( + "Invalid language, Possible values are : japaneseText, englishUsText, chineseTText, chineseSText and koreanText" + ) + exit(1) isChn = isChn() @@ -32,10 +47,6 @@ attributes = loadFile(path="./Data/x64/datatable/music_attribute.bin") words = loadFile(path="./Data/x64/datatable/wordlist.bin") # endregion -# Forcing japanese language on 08.18 as this is what is usually used for omnimix. -if isCHN: - language = "japaneseText" - # region Classes And Methods class Genres(Enum): @@ -56,42 +67,21 @@ class Genres(Enum): return cls.Unknown -def findKeyInList(list: list, key: str, keyValue, value=None): - for object in list: - if object[key] == keyValue: - if value is not None: - return object[value] - else: - return object +class Song: + id = "" + uniqueId = -1 + genreNo = -1 + name = "" + sub = "" + detail = "" - if value is not None: - return "" - else: - return None - - -def findAllObjects(list: list, key: str, keyValue): - templist = [] - templist.append(list) - objects = [] - - for element in templist[0]: - if element[key] == keyValue: - objects.append(element) - - return objects - - -def findDoubloninList(list: list, key: str, keyValue): - if len(findAllObjects(list=list, key=key, keyValue=keyValue)) > 1: - return True - return False - - -def doesPathExist(path: str): - if os.path.exists(path): - return True - return False + def __init__(self, id, uniqueId, genreNo, name, sub, detail): + self.id = id + self.uniqueId = uniqueId + self.genreNo = genreNo + self.name = name + self.sub = sub + self.detail = detail def initCheckFile(): @@ -169,23 +159,6 @@ def initCheckFile(): ) -class Song: - id = "" - uniqueId = -1 - genreNo = -1 - name = "" - sub = "" - detail = "" - - def __init__(self, id, uniqueId, genreNo, name, sub, detail): - self.id = id - self.uniqueId = uniqueId - self.genreNo = genreNo - self.name = name - self.sub = sub - self.detail = detail - - # endregion # Loading all songs from musicinfo in an array