From da477c08292dd9f5e393fd8fcb619e98babc9488 Mon Sep 17 00:00:00 2001 From: Dazed Date: Mon, 26 Jun 2023 13:21:36 -0500 Subject: [PATCH] feat: Improve subvars consistency --- src/rpgmakermvmz.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/rpgmakermvmz.py b/src/rpgmakermvmz.py index 9c9ab79..efec792 100644 --- a/src/rpgmakermvmz.py +++ b/src/rpgmakermvmz.py @@ -26,7 +26,7 @@ PROMPT = Path('prompt.txt').read_text(encoding='utf-8') THREADS = 20 LOCK = threading.Lock() WIDTH = 70 -LISTWIDTH = 90 +LISTWIDTH = 60 MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -40,6 +40,7 @@ LEAVE=False # Flags CODE401 = True +CODE405 = True CODE102 = True CODE122 = False CODE101 = False @@ -441,7 +442,6 @@ def searchCodes(page, pbar): tokens = 0 speaker = '' match = [] - speakerCaught = False global LOCK @@ -455,22 +455,22 @@ def searchCodes(page, pbar): ### IF these crash or fail your game will do the same. Use the flags to skip codes. ## Event Code: 401 Show Text - if page['list'][i]['code'] == 401 and CODE401 == True: + if page['list'][i]['code'] == 401 and CODE401 == True or page['list'][i]['code'] == 405 and CODE405: jaString = page['list'][i]['parameters'][0] oldjaString = jaString jaString = jaString.replace('゙', '') jaString = jaString.replace('。', '.') - jaString = re.sub(r'([\u3000-\uffef])\1{3,}', r'\1\1\1', jaString) + # jaString = re.sub(r'([\u3000-\uffef])\1{3,}', r'\1\1\1', jaString) # Using this to keep track of 401's in a row. Throws IndexError at EndOfList (Expected Behavior) currentGroup.append(jaString) - while (page['list'][i+1]['code'] == 401): + while (page['list'][i+1]['code'] == 401 or page['list'][i+1]['code'] == 405): del page['list'][i] jaString = page['list'][i]['parameters'][0] jaString = jaString.replace('゙', '') jaString = jaString.replace('。', '.') - jaString = re.sub(r'([\u3000-\uffef])\1{3,}', r'\1\1\1', jaString) + # jaString = re.sub(r'([\u3000-\uffef])\1{3,}', r'\1\1\1', jaString) currentGroup.append(jaString) # Join up 401 groups for better translation. @@ -488,8 +488,8 @@ def searchCodes(page, pbar): finalJAString = re.sub(r'([\\]+nw\[[a-zA-Z0-9一-龠ぁ-ゔァ-ヴー\s]+\])', '', finalJAString) # Need to remove outside code and put it back later - startString = re.search(r'^[^一-龠ぁ-ゔァ-ヴー【】()「」a-zA-ZA-Z0-9\\]+', finalJAString) - finalJAString = re.sub(r'^[^一-龠ぁ-ゔァ-ヴー【】()「」a-zA-ZA-Z0-9\\]+', '', finalJAString) + startString = re.search(r'^[^一-龠ぁ-ゔァ-ヴー【】()「」a-zA-Z0-9A-Z0-9\\]+', finalJAString) + finalJAString = re.sub(r'^[^一-龠ぁ-ゔァ-ヴー【】()「」a-zA-Z0-9A-Z0-9\\]+', '', finalJAString) if startString is None: startString = '' else: startString = startString.group() @@ -1080,13 +1080,13 @@ def searchSystem(data, pbar): return tokens def subVars(jaString): - varRegex = r'\\+[a-zA-Z]+\[[0-9a-zA-Z\\\[\]]+\]' + varRegex = r'\\+[a-zA-Z]+\[[0-9a-zA-Z\\\[\]]+\]|[\<\>\\]+[a-zA-Z]+\<\w+\>|[\\\{\}]+' count = 0 varList = re.findall(varRegex, jaString) if len(varList) != 0: for var in varList: - jaString = jaString.replace(var, '[' + str(count) + ']') + jaString = jaString.replace(var, '[x' + str(count) + ']') count += 1 return [jaString, varList] @@ -1096,7 +1096,7 @@ def resubVars(translatedText, varList): if len(varList) != 0: for var in varList: - translatedText = translatedText.replace('[' + str(count) + ']', var) + translatedText = translatedText.replace('[x' + str(count) + ']', var) count += 1 return translatedText @@ -1111,24 +1111,24 @@ def translateGPT(t, history, fullPromptFlag): TOKENS += len(enc.encode(t)) * 2 + len(enc.encode(history)) + len(enc.encode(PROMPT)) return (t, 0) - # If there isn't any Japanese in the text just skip - if not re.search(r'[一-龠]+|[ぁ-ゔ]+|[ァ-ヴー]+', t): - return(t, 0) - # Sub Vars varResponse = subVars(t) - t = varResponse[0] + subbedT = varResponse[0] + + # If there isn't any Japanese in the text just skip + if not re.search(r'[一-龠]+|[ぁ-ゔ]+|[ァ-ヴー]+', subbedT): + return(t, 0) """Translate text using GPT""" if fullPromptFlag: system = PROMPT - user = history + '\n\n\nText to Translate: ' + t + user = history + '\n\n\nText to Translate: ' + subbedT else: system = history - user = t + user = subbedT response = openai.ChatCompletion.create( temperature=0, - model="gpt-3.5-turbo-16k", + model="gpt-3.5-turbo-0613", messages=[ {"role": "system", "content": system}, {"role": "user", "content": user} @@ -1141,7 +1141,7 @@ def translateGPT(t, history, fullPromptFlag): # Make sure translation didn't wonk out mlen=len(response.choices[0].message.content) - elnt=10*len(t) + elnt=10*len(subbedT) #Resub Vars translatedText = resubVars(translatedText, varResponse[1])