Generate CSVs first and divide TIPS 99
This commit is contained in:
parent
5dac9d1dfb
commit
ac163fb05a
2
run.sh
2
run.sh
|
@ -30,4 +30,4 @@ $pycmd -c "import pkg_resources; pkg_resources.require(open('requirements.txt',m
|
|||
|
||||
# --- Run the code ---
|
||||
|
||||
$pycmd src/main.py
|
||||
$pycmd src/main.py "$@"
|
||||
|
|
134
src/flow.py
134
src/flow.py
|
@ -1,46 +1,92 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
onik = {
|
||||
"gamestart" : [
|
||||
'onik_000.txt',
|
||||
'onik_001.txt',
|
||||
'onik_002.txt',
|
||||
'onik_003.txt',
|
||||
'onik_004.txt',
|
||||
'onik_005.txt',
|
||||
'onik_009.txt',
|
||||
'onik_009_02.txt',
|
||||
'onik_010.txt',
|
||||
'onik_011.txt',
|
||||
'onik_012.txt',
|
||||
'onik_013.txt',
|
||||
'onik_014.txt',
|
||||
'onik_014_02.txt',
|
||||
'onik_015.txt',
|
||||
'onik_015_02.txt',
|
||||
# 'onik_015_03.txt',
|
||||
],
|
||||
"Opening" : [ 'onik_op.txt' ],
|
||||
"Sub_Tips_001" : [ 'onik_tips_01.txt' ],
|
||||
"Sub_Tips_002" : [ 'onik_tips_02.txt' ],
|
||||
"Sub_Tips_003" : [ 'onik_tips_03.txt' ],
|
||||
"Sub_Tips_004" : [ 'onik_tips_04.txt' ],
|
||||
"Sub_Tips_005" : [ 'onik_tips_05.txt' ],
|
||||
"Sub_Tips_006" : [ 'onik_tips_06.txt' ],
|
||||
"Sub_Tips_006" : [ 'onik_tips_06.txt' ],
|
||||
"Sub_Tips_007" : [ 'onik_tips_07.txt' ],
|
||||
"Sub_Tips_008" : [ 'onik_tips_08.txt' ],
|
||||
"Sub_Tips_009" : [ 'onik_tips_09.txt' ],
|
||||
"Sub_Tips_010" : [ 'onik_tips_10.txt' ],
|
||||
"Sub_Tips_011" : [ 'onik_tips_11.txt' ],
|
||||
"Sub_Tips_012" : [ 'onik_tips_12.txt' ],
|
||||
"Sub_Tips_013" : [ 'onik_tips_13.txt' ],
|
||||
"Sub_Tips_014" : [ 'onik_tips_14.txt' ],
|
||||
"Sub_Tips_015" : [ 'onik_tips_15.txt' ],
|
||||
"Sub_Tips_016" : [ 'onik_tips_16.txt' ],
|
||||
"Sub_Tips_016" : [ 'onik_tips_16.txt' ],
|
||||
"Sub_Tips_017" : [ 'onik_tips_17.txt' ],
|
||||
"Sub_Tips_018" : [ 'onik_tips_18.txt' ],
|
||||
"Sub_Tips_019" : [ 'onik_tips_19.txt' ],
|
||||
"Sub_Tips_020" : [ 'onik_tips_20.txt' ],
|
||||
}
|
||||
class CsvEntry():
|
||||
def __init__(self, dest: str, orig: str, start: int, end: int):
|
||||
self.dest = dest
|
||||
self.orig = orig
|
||||
self.start = start
|
||||
self.end = end
|
||||
|
||||
onik = [
|
||||
CsvEntry('gamestart/00.csv', 'onik_000.txt', 0, 48),
|
||||
CsvEntry('gamestart/01.csv', 'onik_001.txt', 0, 663),
|
||||
CsvEntry('gamestart/02.csv', 'onik_002.txt', 0, 520),
|
||||
CsvEntry('gamestart/03.csv', 'onik_003.txt', 0, 647),
|
||||
CsvEntry('gamestart/04.csv', 'onik_004.txt', 0, 611),
|
||||
CsvEntry('gamestart/05.csv', 'onik_005.txt', 0, 677),
|
||||
CsvEntry('gamestart/09_01.csv', 'onik_009.txt', 0, 913),
|
||||
CsvEntry('gamestart/09_02.csv', 'onik_009_02.txt', 0, 414),
|
||||
CsvEntry('gamestart/10.csv', 'onik_010.txt', 0, 655),
|
||||
CsvEntry('gamestart/11.csv', 'onik_011.txt', 0, 747),
|
||||
CsvEntry('gamestart/12.csv', 'onik_012.txt', 0, 792),
|
||||
CsvEntry('gamestart/13.csv', 'onik_013.txt', 0, 684),
|
||||
CsvEntry('gamestart/14_01.csv', 'onik_014.txt', 0, 629),
|
||||
CsvEntry('gamestart/14_02.csv', 'onik_014_02.txt', 0, 1067),
|
||||
CsvEntry('gamestart/15_01.csv', 'onik_015.txt', 0, 1027),
|
||||
CsvEntry('gamestart/15_02.csv', 'onik_015_02.txt', 0, 688),
|
||||
CsvEntry('gamestart/15_03.csv', 'onik_015_03.txt', 0, 206),
|
||||
CsvEntry("Opening.csv", 'onik_op.txt', 0, 56),
|
||||
CsvEntry("Sub_Tips_001.csv", 'onik_tips_01.txt', 0, 100),
|
||||
CsvEntry("Sub_Tips_002.csv", 'onik_tips_02.txt', 0, 55),
|
||||
CsvEntry("Sub_Tips_003.csv", 'onik_tips_03.txt', 0, 49),
|
||||
CsvEntry("Sub_Tips_004.csv", 'onik_tips_04.txt', 0, 13),
|
||||
CsvEntry("Sub_Tips_005.csv", 'onik_tips_05.txt', 0, 27),
|
||||
CsvEntry("Sub_Tips_006.csv", 'onik_tips_06.txt', 0, 57),
|
||||
CsvEntry("Sub_Tips_007.csv", 'onik_tips_07.txt', 0, 91),
|
||||
CsvEntry("Sub_Tips_008.csv", 'onik_tips_08.txt', 0, 19),
|
||||
CsvEntry("Sub_Tips_009.csv", 'onik_tips_09.txt', 0, 7),
|
||||
CsvEntry("Sub_Tips_010.csv", 'onik_tips_10.txt', 0, 4),
|
||||
CsvEntry("Sub_Tips_011.csv", 'onik_tips_11.txt', 0, 0),
|
||||
CsvEntry("Sub_Tips_012.csv", 'onik_tips_12.txt', 0, 19),
|
||||
CsvEntry("Sub_Tips_013.csv", 'onik_tips_13.txt', 0, 69),
|
||||
CsvEntry("Sub_Tips_014.csv", 'onik_tips_14.txt', 0, 40),
|
||||
CsvEntry("Sub_Tips_015.csv", 'onik_tips_15.txt', 0, 25),
|
||||
CsvEntry("Sub_Tips_016.csv", 'onik_tips_16.txt', 0, 69),
|
||||
CsvEntry("Sub_Tips_017.csv", 'onik_tips_17.txt', 0, 99),
|
||||
CsvEntry("Sub_Tips_018.csv", 'onik_tips_18.txt', 0, 38),
|
||||
CsvEntry("Sub_Tips_019.csv", 'onik_tips_19.txt', 0, 24),
|
||||
CsvEntry("Sub_Tips_020.csv", 'onik_tips_20.txt', 0, 132),
|
||||
CsvEntry("Sub_Tips_099.csv", 'onik_015_03.txt', 207, 284),
|
||||
]
|
||||
# "gamestart" : [
|
||||
# 'onik_000.txt',
|
||||
# 'onik_001.txt',
|
||||
# 'onik_002.txt',
|
||||
# 'onik_003.txt',
|
||||
# 'onik_004.txt',
|
||||
# 'onik_005.txt',
|
||||
# 'onik_009.txt',
|
||||
# 'onik_009_02.txt',
|
||||
# 'onik_010.txt',
|
||||
# 'onik_011.txt',
|
||||
# 'onik_012.txt',
|
||||
# 'onik_013.txt',
|
||||
# 'onik_014.txt',
|
||||
# 'onik_014_02.txt',
|
||||
# 'onik_015.txt',
|
||||
# 'onik_015_02.txt',
|
||||
# 'onik_015_03.txt', 100,
|
||||
# ],
|
||||
# "Opening" : [ 'onik_op.txt' ],
|
||||
# "Sub_Tips_001" : [ 'onik_tips_01.txt' ],
|
||||
# "Sub_Tips_002" : [ 'onik_tips_02.txt' ],
|
||||
# "Sub_Tips_003" : [ 'onik_tips_03.txt' ],
|
||||
# "Sub_Tips_004" : [ 'onik_tips_04.txt' ],
|
||||
# "Sub_Tips_005" : [ 'onik_tips_05.txt' ],
|
||||
# "Sub_Tips_006" : [ 'onik_tips_06.txt' ],
|
||||
# "Sub_Tips_007" : [ 'onik_tips_07.txt' ],
|
||||
# "Sub_Tips_008" : [ 'onik_tips_08.txt' ],
|
||||
# "Sub_Tips_009" : [ 'onik_tips_09.txt' ],
|
||||
# "Sub_Tips_010" : [ 'onik_tips_10.txt' ],
|
||||
# "Sub_Tips_011" : [ 'onik_tips_11.txt' ],
|
||||
# "Sub_Tips_012" : [ 'onik_tips_12.txt' ],
|
||||
# "Sub_Tips_013" : [ 'onik_tips_13.txt' ],
|
||||
# "Sub_Tips_014" : [ 'onik_tips_14.txt' ],
|
||||
# "Sub_Tips_015" : [ 'onik_tips_15.txt' ],
|
||||
# "Sub_Tips_016" : [ 'onik_tips_16.txt' ],
|
||||
# "Sub_Tips_017" : [ 'onik_tips_17.txt' ],
|
||||
# "Sub_Tips_018" : [ 'onik_tips_18.txt' ],
|
||||
# "Sub_Tips_019" : [ 'onik_tips_19.txt' ],
|
||||
# "Sub_Tips_020" : [ 'onik_tips_20.txt' ],
|
||||
# "Sub_Tips_099" : [ 'onik_tips_99.txt' ],
|
||||
#}
|
||||
|
|
12
src/main.py
12
src/main.py
|
@ -1,10 +1,20 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
|
||||
import orig
|
||||
import parser
|
||||
|
||||
|
||||
def main():
|
||||
orig.process_sections()
|
||||
if len(sys.argv) < 2:
|
||||
print('Operation not specified.')
|
||||
sys.exit(1)
|
||||
|
||||
if sys.argv[1] == 'generate':
|
||||
parser.parse_to_csv()
|
||||
elif sys.argv[1] == 'translate':
|
||||
orig.process_sections()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
import csv
|
||||
import os
|
||||
|
||||
import config
|
||||
import flow
|
||||
|
||||
class OutputLine():
|
||||
def __init__(self, text_jp: str, text_en: str):
|
||||
|
@ -90,37 +92,55 @@ def get_functions_from_file(filepath: str) -> list[str]:
|
|||
|
||||
return tokens
|
||||
|
||||
def parse_to_csv(filename: str):
|
||||
out_path = config.get('output_path')
|
||||
scripts_path = config.get('scripts_path')
|
||||
def parse_to_csv():
|
||||
for csv_entry in flow.onik:
|
||||
out_path = config.get('output_path')
|
||||
scripts_path = config.get('scripts_path')
|
||||
|
||||
csvname = os.path.join(out_path, filename + ".csv")
|
||||
escapechar = config.get('csv_escapechar')
|
||||
delchar = config.get('csv_delchar')
|
||||
|
||||
with open(csvname, 'w') as csvfile:
|
||||
|
||||
csv_writer = csv.writer(
|
||||
csvfile,
|
||||
delimiter=delchar,
|
||||
quoting=csv.QUOTE_MINIMAL,
|
||||
quotechar=escapechar,
|
||||
)
|
||||
escapechar = config.get('csv_escapechar')
|
||||
delchar = config.get('csv_delchar')
|
||||
|
||||
tokens = get_functions_from_file(
|
||||
os.path.join(scripts_path, filename)
|
||||
os.path.join(scripts_path, csv_entry.orig)
|
||||
)
|
||||
|
||||
for token in tokens:
|
||||
function_name = token[0]
|
||||
csv_path = os.path.join(out_path, 'trans', csv_entry.dest)
|
||||
os.makedirs(os.path.dirname(csv_path), exist_ok = True)
|
||||
|
||||
#print(f'Generating {csv_entry.dest}...')
|
||||
|
||||
with open(csv_path, 'w') as csv_file:
|
||||
|
||||
csv_writer = csv.writer(
|
||||
csv_file,
|
||||
delimiter=delchar,
|
||||
quoting=csv.QUOTE_MINIMAL,
|
||||
quotechar=escapechar,
|
||||
)
|
||||
|
||||
i = 0
|
||||
for token in tokens:
|
||||
if token[0] != 'OutputLine':
|
||||
continue
|
||||
|
||||
# Only include the range specified by the csv_entry
|
||||
if i < csv_entry.start:
|
||||
i += 1
|
||||
continue
|
||||
elif i > csv_entry.end:
|
||||
break
|
||||
|
||||
if function_name == "OutputLine":
|
||||
# NOTE: [1:-1] Removes quotes
|
||||
# NOTE: replace(' ', '') Is needed for some unity script dialogue
|
||||
text_jp = token[2][1:-1].replace('\\', '').replace('\n', '').replace(' ', '')
|
||||
text_en = token[4][1:-1].replace('\\', '').replace('\n', '')
|
||||
csv_writer.writerow([text_jp, text_en])
|
||||
|
||||
i += 1
|
||||
|
||||
if i-1 != csv_entry.end:
|
||||
print(f'WARNING: File "{csv_entry.dest}": written {i-1} of {csv_entry.end} lines')
|
||||
|
||||
|
||||
def parse_to_structure(filename: str) -> list[OutputLine]:
|
||||
out_path = config.get('output_path')
|
||||
|
|
Loading…
Reference in New Issue