From 4da677a0846d9f394c020c925500a447337b9bbb Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 15 Sep 2024 02:16:39 +0800 Subject: [PATCH 1/3] Fix: [EN] OCR on SoulGladScorchsandAuditionVenue --- module/ocr/utils.py | 41 +++++++++++++++++++++++++++++++++++++++ tasks/base/main_page.py | 4 ++++ tasks/dungeon/ui/llist.py | 15 +++++++++++++- 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/module/ocr/utils.py b/module/ocr/utils.py index ed6701e80..f05cc181b 100644 --- a/module/ocr/utils.py +++ b/module/ocr/utils.py @@ -51,6 +51,47 @@ def _merge_boxed_result(left: BoxedResult, right: BoxedResult) -> BoxedResult: return left +def merge_result_button( + results: list[BoxedResult], + left_func: callable, + right_func: callable, + text_func: callable +) -> list[BoxedResult]: + """ + Args: + results: + left_func: Function that inputs ocr_text (str) and outputs bool + True means mark as left text + right_func: + text_func: Function that inputs left_text (str) right_text (str) and outputs text (str) + """ + left = None + right = None + for result in results: + if left_func(result.ocr_text): + left = result + elif right_func(result.ocr_text): + right = result + + text = text_func( + left.ocr_text if left is not None else '', + right.ocr_text if right is not None else '' + ) + if left is not None: + if right is not None: + results.remove(right) + left.box = _merge_area(left.box, right.box) + left.ocr_text = text + else: + left.ocr_text = text + else: + if right is not None: + right.ocr_text = text + else: + pass + return results + + def merge_buttons(buttons: list[BoxedResult], thres_x=20, thres_y=20) -> list[BoxedResult]: """ Args: diff --git a/tasks/base/main_page.py b/tasks/base/main_page.py index aa21d14a9..781bc0f7a 100644 --- a/tasks/base/main_page.py +++ b/tasks/base/main_page.py @@ -23,6 +23,10 @@ class OcrPlaneName(OcrWhiteLetterOnComplexBackground): result = result.replace('avatia', 'avalia') # 苏乐达™热砂海选会场 result = re.sub(r'(苏乐达|蘇樂達|SoulGlad|スラーダ|FelizAlma)[rtT]*M*', r'\1', result) + # SoulGladtM Scorchsand Audition Ven + if 'Audition' in result: + right = result.find('Audition') + len('Audition') + result = result[:right] + ' Venue' # 幽囚狱 result = result.replace('幽因狱', '幽囚狱') result = result.replace('幽因獄', '幽囚獄') diff --git a/tasks/dungeon/ui/llist.py b/tasks/dungeon/ui/llist.py index e49c02d59..f35eac294 100644 --- a/tasks/dungeon/ui/llist.py +++ b/tasks/dungeon/ui/llist.py @@ -1,4 +1,5 @@ import re +from copy import copy import cv2 from pponnxcr.predict_system import BoxedResult @@ -10,7 +11,7 @@ from module.base.timer import Timer from module.base.utils import area_center, area_limit, area_offset, crop, image_size from module.logger import logger from module.ocr.ocr import Ocr, OcrResultButton -from module.ocr.utils import split_and_pair_button_attr, split_and_pair_buttons +from module.ocr.utils import merge_result_button, split_and_pair_button_attr, split_and_pair_buttons from module.ui.draggable_list import DraggableList from module.ui.switch import Switch from tasks.base.page import page_guide @@ -40,6 +41,7 @@ class OcrDungeonName(Ocr): # 苏乐达™热砂海选会场 result = re.sub(r'(苏乐达|蘇樂達|SoulGlad|スラーダ|FelizAlma)[rtT]*M*', r'\1', result) result = re.sub(r'["\']', '', result) + result = re.sub('Aud[it]+on', 'Audition', result) result = super().after_process(result) @@ -106,6 +108,17 @@ class OcrDungeonList(OcrDungeonName): else: result.box = area_offset(result.box, offset=OCR_DUNGEON_NAME.area[:2]) + before = copy(results) + # Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue + merge_result_button( + results, + left_func=lambda x: 'Audition' in x, + right_func=lambda x: 'Venue' in x, + text_func=lambda l, r: f'SoulGladScorchsandAuditionVenue' + ) + if results != before: + logger.attr(name=self.name, + text=str([result.ocr_text for result in results])) return results def _match_result(self, *args, **kwargs): From 543dd27e0e1d3180d8ac90e0b58e8cd719224606 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 15 Sep 2024 02:22:39 +0800 Subject: [PATCH 2/3] Opt: [ALAS] Skip trying nemu_ipc on MuMu Global --- module/device/method/nemu_ipc.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/module/device/method/nemu_ipc.py b/module/device/method/nemu_ipc.py index 0fde50d51..86948783a 100644 --- a/module/device/method/nemu_ipc.py +++ b/module/device/method/nemu_ipc.py @@ -469,6 +469,9 @@ class NemuIpc(Platform): """ # Try existing settings first if self.config.EmulatorInfo_path: + if 'MuMuPlayerGlobal' in self.config.EmulatorInfo_path: + logger.info(f'nemu_ipc is not available on MuMuPlayerGlobal, {self.config.EmulatorInfo_path}') + raise RequestHumanTakeover folder = os.path.abspath(os.path.join(self.config.EmulatorInfo_path, '../../')) index = NemuIpcImpl.serial_to_id(self.serial) if index is not None: @@ -488,6 +491,9 @@ class NemuIpc(Platform): if self.emulator_instance is None: logger.error('Unable to use NemuIpc because emulator instance not found') raise RequestHumanTakeover + if 'MuMuPlayerGlobal' in self.emulator_instance.path: + logger.info(f'nemu_ipc is not available on MuMuPlayerGlobal, {self.emulator_instance.path}') + raise RequestHumanTakeover try: return NemuIpcImpl( nemu_folder=self.emulator_instance.emulator.abspath('../'), From f0607ffe95d37345027a78718f3d76b1cb63281a Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 15 Sep 2024 02:48:51 +0800 Subject: [PATCH 3/3] Fix: Click account confirm at login just donno why there is a button to confirm login this account even if there is only one account --- assets/cn/login/ACCOUNT_CONFIRM.png | Bin 0 -> 12323 bytes tasks/login/assets/assets_login.py | 11 +++++++++++ tasks/login/login.py | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 assets/cn/login/ACCOUNT_CONFIRM.png diff --git a/assets/cn/login/ACCOUNT_CONFIRM.png b/assets/cn/login/ACCOUNT_CONFIRM.png new file mode 100644 index 0000000000000000000000000000000000000000..3f08352e7169ca51538b52d8ed0d63a29f81812f GIT binary patch literal 12323 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 literal 0 HcmV?d00001 diff --git a/tasks/login/assets/assets_login.py b/tasks/login/assets/assets_login.py index e7f36c8f0..a91813695 100644 --- a/tasks/login/assets/assets_login.py +++ b/tasks/login/assets/assets_login.py @@ -3,6 +3,17 @@ from module.base.button import Button, ButtonWrapper # This file was auto-generated, do not modify it manually. To generate: # ``` python -m dev_tools.button_extract ``` +ACCOUNT_CONFIRM = ButtonWrapper( + name='ACCOUNT_CONFIRM', + cn=Button( + file='./assets/cn/login/ACCOUNT_CONFIRM.png', + area=(583, 424, 696, 450), + search=(563, 404, 716, 470), + color=(172, 145, 92), + button=(583, 424, 696, 450), + ), + en=None, +) LOGIN_CONFIRM = ButtonWrapper( name='LOGIN_CONFIRM', share=[ diff --git a/tasks/login/login.py b/tasks/login/login.py index 412220ac0..fd1889ed9 100644 --- a/tasks/login/login.py +++ b/tasks/login/login.py @@ -3,7 +3,7 @@ from module.exception import GameNotRunningError from module.logger import logger from tasks.base.page import page_main from tasks.base.ui import UI -from tasks.login.assets.assets_login import LOGIN_CONFIRM, LOGIN_LOADING, USER_AGREEMENT_ACCEPT +from tasks.login.assets.assets_login import * from tasks.login.cloud import LoginAndroidCloud @@ -62,6 +62,8 @@ class Login(UI, LoginAndroidCloud): continue if self.appear_then_click(USER_AGREEMENT_ACCEPT): continue + if self.appear_then_click(ACCOUNT_CONFIRM): + continue # Additional if self.handle_popup_single(): continue