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 ---
|
# --- 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
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
onik = {
|
class CsvEntry():
|
||||||
"gamestart" : [
|
def __init__(self, dest: str, orig: str, start: int, end: int):
|
||||||
'onik_000.txt',
|
self.dest = dest
|
||||||
'onik_001.txt',
|
self.orig = orig
|
||||||
'onik_002.txt',
|
self.start = start
|
||||||
'onik_003.txt',
|
self.end = end
|
||||||
'onik_004.txt',
|
|
||||||
'onik_005.txt',
|
onik = [
|
||||||
'onik_009.txt',
|
CsvEntry('gamestart/00.csv', 'onik_000.txt', 0, 48),
|
||||||
'onik_009_02.txt',
|
CsvEntry('gamestart/01.csv', 'onik_001.txt', 0, 663),
|
||||||
'onik_010.txt',
|
CsvEntry('gamestart/02.csv', 'onik_002.txt', 0, 520),
|
||||||
'onik_011.txt',
|
CsvEntry('gamestart/03.csv', 'onik_003.txt', 0, 647),
|
||||||
'onik_012.txt',
|
CsvEntry('gamestart/04.csv', 'onik_004.txt', 0, 611),
|
||||||
'onik_013.txt',
|
CsvEntry('gamestart/05.csv', 'onik_005.txt', 0, 677),
|
||||||
'onik_014.txt',
|
CsvEntry('gamestart/09_01.csv', 'onik_009.txt', 0, 913),
|
||||||
'onik_014_02.txt',
|
CsvEntry('gamestart/09_02.csv', 'onik_009_02.txt', 0, 414),
|
||||||
'onik_015.txt',
|
CsvEntry('gamestart/10.csv', 'onik_010.txt', 0, 655),
|
||||||
'onik_015_02.txt',
|
CsvEntry('gamestart/11.csv', 'onik_011.txt', 0, 747),
|
||||||
# 'onik_015_03.txt',
|
CsvEntry('gamestart/12.csv', 'onik_012.txt', 0, 792),
|
||||||
],
|
CsvEntry('gamestart/13.csv', 'onik_013.txt', 0, 684),
|
||||||
"Opening" : [ 'onik_op.txt' ],
|
CsvEntry('gamestart/14_01.csv', 'onik_014.txt', 0, 629),
|
||||||
"Sub_Tips_001" : [ 'onik_tips_01.txt' ],
|
CsvEntry('gamestart/14_02.csv', 'onik_014_02.txt', 0, 1067),
|
||||||
"Sub_Tips_002" : [ 'onik_tips_02.txt' ],
|
CsvEntry('gamestart/15_01.csv', 'onik_015.txt', 0, 1027),
|
||||||
"Sub_Tips_003" : [ 'onik_tips_03.txt' ],
|
CsvEntry('gamestart/15_02.csv', 'onik_015_02.txt', 0, 688),
|
||||||
"Sub_Tips_004" : [ 'onik_tips_04.txt' ],
|
CsvEntry('gamestart/15_03.csv', 'onik_015_03.txt', 0, 206),
|
||||||
"Sub_Tips_005" : [ 'onik_tips_05.txt' ],
|
CsvEntry("Opening.csv", 'onik_op.txt', 0, 56),
|
||||||
"Sub_Tips_006" : [ 'onik_tips_06.txt' ],
|
CsvEntry("Sub_Tips_001.csv", 'onik_tips_01.txt', 0, 100),
|
||||||
"Sub_Tips_006" : [ 'onik_tips_06.txt' ],
|
CsvEntry("Sub_Tips_002.csv", 'onik_tips_02.txt', 0, 55),
|
||||||
"Sub_Tips_007" : [ 'onik_tips_07.txt' ],
|
CsvEntry("Sub_Tips_003.csv", 'onik_tips_03.txt', 0, 49),
|
||||||
"Sub_Tips_008" : [ 'onik_tips_08.txt' ],
|
CsvEntry("Sub_Tips_004.csv", 'onik_tips_04.txt', 0, 13),
|
||||||
"Sub_Tips_009" : [ 'onik_tips_09.txt' ],
|
CsvEntry("Sub_Tips_005.csv", 'onik_tips_05.txt', 0, 27),
|
||||||
"Sub_Tips_010" : [ 'onik_tips_10.txt' ],
|
CsvEntry("Sub_Tips_006.csv", 'onik_tips_06.txt', 0, 57),
|
||||||
"Sub_Tips_011" : [ 'onik_tips_11.txt' ],
|
CsvEntry("Sub_Tips_007.csv", 'onik_tips_07.txt', 0, 91),
|
||||||
"Sub_Tips_012" : [ 'onik_tips_12.txt' ],
|
CsvEntry("Sub_Tips_008.csv", 'onik_tips_08.txt', 0, 19),
|
||||||
"Sub_Tips_013" : [ 'onik_tips_13.txt' ],
|
CsvEntry("Sub_Tips_009.csv", 'onik_tips_09.txt', 0, 7),
|
||||||
"Sub_Tips_014" : [ 'onik_tips_14.txt' ],
|
CsvEntry("Sub_Tips_010.csv", 'onik_tips_10.txt', 0, 4),
|
||||||
"Sub_Tips_015" : [ 'onik_tips_15.txt' ],
|
CsvEntry("Sub_Tips_011.csv", 'onik_tips_11.txt', 0, 0),
|
||||||
"Sub_Tips_016" : [ 'onik_tips_16.txt' ],
|
CsvEntry("Sub_Tips_012.csv", 'onik_tips_12.txt', 0, 19),
|
||||||
"Sub_Tips_016" : [ 'onik_tips_16.txt' ],
|
CsvEntry("Sub_Tips_013.csv", 'onik_tips_13.txt', 0, 69),
|
||||||
"Sub_Tips_017" : [ 'onik_tips_17.txt' ],
|
CsvEntry("Sub_Tips_014.csv", 'onik_tips_14.txt', 0, 40),
|
||||||
"Sub_Tips_018" : [ 'onik_tips_18.txt' ],
|
CsvEntry("Sub_Tips_015.csv", 'onik_tips_15.txt', 0, 25),
|
||||||
"Sub_Tips_019" : [ 'onik_tips_19.txt' ],
|
CsvEntry("Sub_Tips_016.csv", 'onik_tips_16.txt', 0, 69),
|
||||||
"Sub_Tips_020" : [ 'onik_tips_20.txt' ],
|
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' ],
|
||||||
|
#}
|
||||||
|
|
10
src/main.py
10
src/main.py
|
@ -1,9 +1,19 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
import orig
|
import orig
|
||||||
|
import parser
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
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()
|
orig.process_sections()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import config
|
import config
|
||||||
|
import flow
|
||||||
|
|
||||||
class OutputLine():
|
class OutputLine():
|
||||||
def __init__(self, text_jp: str, text_en: str):
|
def __init__(self, text_jp: str, text_en: str):
|
||||||
|
@ -90,37 +92,55 @@ def get_functions_from_file(filepath: str) -> list[str]:
|
||||||
|
|
||||||
return tokens
|
return tokens
|
||||||
|
|
||||||
def parse_to_csv(filename: str):
|
def parse_to_csv():
|
||||||
|
for csv_entry in flow.onik:
|
||||||
out_path = config.get('output_path')
|
out_path = config.get('output_path')
|
||||||
scripts_path = config.get('scripts_path')
|
scripts_path = config.get('scripts_path')
|
||||||
|
|
||||||
csvname = os.path.join(out_path, filename + ".csv")
|
|
||||||
escapechar = config.get('csv_escapechar')
|
escapechar = config.get('csv_escapechar')
|
||||||
delchar = config.get('csv_delchar')
|
delchar = config.get('csv_delchar')
|
||||||
|
|
||||||
with open(csvname, 'w') as csvfile:
|
tokens = get_functions_from_file(
|
||||||
|
os.path.join(scripts_path, csv_entry.orig)
|
||||||
|
)
|
||||||
|
|
||||||
|
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_writer = csv.writer(
|
||||||
csvfile,
|
csv_file,
|
||||||
delimiter=delchar,
|
delimiter=delchar,
|
||||||
quoting=csv.QUOTE_MINIMAL,
|
quoting=csv.QUOTE_MINIMAL,
|
||||||
quotechar=escapechar,
|
quotechar=escapechar,
|
||||||
)
|
)
|
||||||
|
|
||||||
tokens = get_functions_from_file(
|
i = 0
|
||||||
os.path.join(scripts_path, filename)
|
|
||||||
)
|
|
||||||
|
|
||||||
for token in tokens:
|
for token in tokens:
|
||||||
function_name = token[0]
|
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: [1:-1] Removes quotes
|
||||||
# NOTE: replace(' ', '') Is needed for some unity script dialogue
|
# NOTE: replace(' ', '') Is needed for some unity script dialogue
|
||||||
text_jp = token[2][1:-1].replace('\\', '').replace('\n', '').replace(' ', '')
|
text_jp = token[2][1:-1].replace('\\', '').replace('\n', '').replace(' ', '')
|
||||||
text_en = token[4][1:-1].replace('\\', '').replace('\n', '')
|
text_en = token[4][1:-1].replace('\\', '').replace('\n', '')
|
||||||
csv_writer.writerow([text_jp, text_en])
|
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]:
|
def parse_to_structure(filename: str) -> list[OutputLine]:
|
||||||
out_path = config.get('output_path')
|
out_path = config.get('output_path')
|
||||||
|
|
Loading…
Reference in New Issue