This commit is contained in:
2026-06-14 12:21:28 +08:00
11 changed files with 39 additions and 24 deletions

View File

@@ -298,6 +298,7 @@
"cn_channel-2",
"cn_channel-3",
"cn_channel-4",
"cn_channel-5",
"en-0",
"en-1",
"en-2",

View File

@@ -20,7 +20,7 @@ class GeneratedConfig:
# Group `Emulator`
Emulator_Serial = 'auto'
Emulator_PackageName = 'auto' # auto, com.bilibili.azurlane, com.YoStarEN.AzurLane, com.YoStarJP.AzurLane, com.hkmanjuu.azurlane.gp, com.bilibili.blhx.huawei, com.bilibili.blhx.honor, com.bilibili.blhx.mi, com.tencent.tmgp.bilibili.blhx, com.bilibili.blhx.baidu, com.bilibili.blhx.qihoo, com.bilibili.blhx.nearme.gamecenter, com.bilibili.blhx.vivo, com.bilibili.blhx.mz, com.bilibili.blhx.dl, com.bilibili.blhx.lenovo, com.bilibili.blhx.uc, com.bilibili.blhx.mzw, com.yiwu.blhx.yx15, com.bilibili.blhx.m4399, com.bilibili.blhx.bilibiliMove, com.hkmanjuu.azurlane.gp.mc
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_android-28, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_android-28, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, cn_channel-5, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
Emulator_ScreenshotMethod = 'auto' # auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, nemu_ipc, ldopengl
Emulator_ControlMethod = 'MaaTouch' # ADB, uiautomator2, minitouch, Hermit, MaaTouch
Emulator_ScreenshotDedithering = False

View File

@@ -407,6 +407,7 @@
"cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora",
"en-1": "[EN] Lexington",
"en-2": "[EN] Sandy",

View File

@@ -407,6 +407,7 @@
"cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora",
"en-1": "[EN] Lexington",
"en-2": "[EN] Sandy",

View File

@@ -407,6 +407,7 @@
"cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora",
"en-1": "[EN] Lexington",
"en-2": "[EN] Sandy",

View File

@@ -407,6 +407,7 @@
"cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora",
"en-1": "[EN] Lexington",
"en-2": "[EN] Sandy",

View File

@@ -81,7 +81,7 @@ VALID_SERVER_LIST = {
'莱特湾', '硫磺岛', '冲绳岛', '阿留申群岛', '马耳他'
],
'cn_channel': [
'皇家巡游', '大西洋宪章', '十字军行动', '龙骑兵行动', '冥王星行动'
'皇家巡游', '大西洋宪章', '十字军行动', '龙骑兵行动', '冥王星行动', '群岛计划',
],
'en': [
'Avrora', 'Lexington', 'Sandy', 'Washington', 'Amagi',

View File

@@ -183,9 +183,6 @@ class Exercise(ExerciseCombat):
return True
return False
def server_support_ocr_reset_remain(self) -> bool:
return self.config.SERVER in ['cn', 'en', 'jp']
def _get_exercise_reset_remain(self):
"""
Returns:
@@ -218,12 +215,7 @@ class Exercise(ExerciseCombat):
logger.attr('Exercise_ExerciseStrategy', self.config.Exercise_ExerciseStrategy)
self.preserve, admiral_interval = self._get_exercise_strategy()
if not self.server_support_ocr_reset_remain():
logger.info(f'Server {self.config.SERVER} does not yet support OCR exercise reset remain time')
logger.info('Please contact the developer to improve as soon as possible')
remain_time = datetime.timedelta(days=0)
else:
remain_time = OCR_PERIOD_REMAIN.ocr(self.device.image)
remain_time = OCR_PERIOD_REMAIN.ocr(self.device.image)
logger.info(f'Exercise period remain: {remain_time}')
if admiral_interval is not None and remain_time:

View File

@@ -200,24 +200,30 @@ class InfoHandler(ModuleBase):
return False
if self.appear(USE_DATA_KEY, offset=(20, 20)):
skip_first_screenshot = True
while 1:
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
# enable USE_DATA_KEY_NOTIFIED
for _ in self.loop():
enabled = self.image_color_count(
USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10)
if enabled:
break
if self.appear(USE_DATA_KEY, offset=(20, 20), interval=5):
self.device.click(USE_DATA_KEY_NOTIFIED)
continue
self.config.USE_DATA_KEY = False # Reset on success as task can be stopped before can be recovered
return self.handle_popup_confirm('USE_DATA_KEY')
# click confirm
# POPUP_CONFIRM from data key page has minor differece from the standard one
# so we just bind clicking it
self.interval_clear(USE_DATA_KEY, interval=5)
for _ in self.loop():
if not self.appear(USE_DATA_KEY, offset=(20, 20)):
break
if self.appear(USE_DATA_KEY, offset=(20, 20), interval=5):
self.device.click(POPUP_CONFIRM)
continue
return True
return False
@@ -550,4 +556,4 @@ class InfoHandler(ModuleBase):
self.wait_until_manjuu_disappear()
return True
else:
return False
return False