From 991b3db12c293117bd5dd9e2cc5ea5cd7a6bad54 Mon Sep 17 00:00:00 2001 From: dusk Date: Sat, 24 Feb 2024 00:42:17 +0100 Subject: [PATCH] Implement some common parsing fixes and remove certain hardcoded ones --- src/fix.py | 74 +++++++++++++++++++++++++++++++++++++++++++++-------- src/flow.py | 2 +- 2 files changed, 64 insertions(+), 12 deletions(-) diff --git a/src/fix.py b/src/fix.py index 6bdacfa..fd04719 100644 --- a/src/fix.py +++ b/src/fix.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 + +import scripter import config import hashlib @@ -15,10 +17,10 @@ def open_onikakushi() -> str: origfile = open(config.get('original_path'), 'r', encoding='shift_jisx0213') outfile = open(outpath, 'w', encoding='shift_jisx0213') - # Fix opening - opening_range = (21387, 21563) + # opening_range = (21387, 21563) + exclude = [12432, 2415] replacements = { # Misc @@ -48,9 +50,9 @@ def open_onikakushi() -> str: 5090: '「セ、センスねぇーッ!!@ なんだよそのネーミングは!!」@', 5300: '「9!@ いないですの?!!w400 8!!w300 7!@ あがりでございます!!」/', 5426: '「……撫でた。!w400……これで!w500……いい…?!」!sd@', - 5594: '!s100「あ、………!sdな、なんだ……あははは……は。」@', + # 5594: '!s100「あ、………!sdな、なんだ……あははは……は。」@', 5792: '……くっくっく!!sd うつけ者めッ!!!@', - 5966:'「ぎゃぎゃ!s250………!s80ぎゃああぁあぁあぁあぁああッ!!!」!sd¥', + # 5966:'「ぎゃぎゃ!s250………!s80ぎゃああぁあぁあぁあぁああッ!!!」!sd¥', 6224:' とりとめのないおしゃべり。@', # onik_009 6645:'quakey 5,200', @@ -79,8 +81,8 @@ def open_onikakushi() -> str: 15248:'!s300「………………はい。」!sd@', 15259:'!s500「……………オヤシロさま、!w1000………ですよ。」!sd@', 15261:'「…………オヤシロさまの祟りって、!w500本当にあるのかな!s400……なんて、まぁ…はっはっは…!」!sd@', - 15696:'!s200「け…圭ちゃん……!sdそんなのって……、」¥', - 15748:'!s300「………ぅ………!sdひどいよ………圭ちゃん………、」@', + # 15696:'!s200「け…圭ちゃん……!sdそんなのって……、」¥', + # 15748:'!s300「………ぅ………!sdひどいよ………圭ちゃん………、」@', 15758:' その背後に、ぼそりと。@…本当にぼそりと、その独り言が聞こえた。¥', 16008:'「信じないよね。@!s200あはははははははははははははははは。」!sd¥', 16018:'「……待ってよ圭一くん。@!s100あはははははははははははははははははははははは。」!sd@', @@ -93,8 +95,15 @@ def open_onikakushi() -> str: 16217:'「言ったよ。@…悟史くんは“!w500転校”!sd!w800したの。」@', 16280:'!s200あはははははははははははははははははははははははは。!sd@', 16641:'!s200「……あははははははははははははははははははははは。」!sd@', - 16665:'!s200「あはははははははははははははははははははははははははははははははははははははははははははははははははははははは……、」!sd¥', - 21545:'!s150…………………………………!s50好きだった。!w3000', + # 16665:'!s200「あはははははははははははははははははははははははははははははははははははははははははははははははははははははは……、」!sd¥', + # 21545:'!s150…………………………………!s50好きだった。!w3000', + + # onik_015_2 + 17172:'「映画の監督とか。@工事現場の監督とか。!w800!s200あははははははははははははははははは。」!sd¥', + 17205:'「あはははは。監督は監督さんだよ。!s200あははははははははははははははははは。」!sd@', + # 17208:'!s150「あはははははははははははははははははははははははははははははははは…」!sd¥', + # 17213:'!s150「あははははははははははははははははははははははは。」!sd¥', + # 17235:'!s200「あははははははははははははははははははははははははははは。」!sd¥', # onik_tips_14 22657:'・歯型から都内歯科へ照合@ > 警視庁へ@', 22658:'・顔写真の送付@ > 警視庁へ@', @@ -102,11 +111,54 @@ def open_onikakushi() -> str: } for i, line in enumerate(origfile): - - outfile.write(replacements.get(i, line[:-1])+'\n') - + if i not in exclude and i not in replacements: + outfile.write(fix_common_displaced_commands(line)+'\n') + else: + outfile.write(replacements.get(i, line[:-1])+'\n') outfile.close() origfile.close() return outpath + + +# Fix the '「!s*' and '!sd。」@' plague +def fix_common_displaced_commands(line: str) -> str: + ret = '' + tokens = scripter.parse_line(line) + + if len(tokens) > 1 and \ + tokens[1].type == scripter.TokenType.COMMAND \ + and tokens[0].token == ' ': + + tokens.pop(0) + + + # '「!s*' + if len(tokens) > 2 and \ + tokens[0].token == '「' and tokens[1].token.startswith('!s'): + # !s to beggining + tokens[0] = tokens[1] + # prepend 「 to next token + tokens[2].token = '「' + tokens[2].token + # remove 「 token + tokens.pop(1) + + + # '!sd。」' + if len(tokens) > 3 and \ + tokens[-3].token == '!sd' and \ + tokens[-2].token in ['。」','」','。','、」'] and \ + tokens[-1].type == scripter.TokenType.COMMAND: + + # Prepend to end + quot = tokens.pop(-2).token + excl = tokens.pop(-2).token + tokens[-1].token = excl + tokens[-1].token + tokens[-2].token += quot + + + for t in tokens: + ret += t.token + + return ret diff --git a/src/flow.py b/src/flow.py index 45bf1fd..c45e745 100644 --- a/src/flow.py +++ b/src/flow.py @@ -18,7 +18,7 @@ onik = { 'onik_014_02.txt', 'onik_015.txt', 'onik_015_02.txt', - # 'onik_015_03.txt', + 'onik_015_03.txt', ], "Opening" : [ 'onik_op.txt' ], "Sub_Tips_001" : [ 'onik_tips_01.txt' ],