1
1
mirror of https://github.com/KenanZhu/AutoLibrary.git synced 2026-06-17 23:13:03 +08:00

refactor(pages): 调整预约检查流程顺序,数据校验前置以避免无效浏览器操作

将 ReserveChecker.check(纯数据校验)移至 RecordChecker.canReserve(浏览器查询)之前,
解决 canReserve 在校验前使用未规范化日期的隐式缺陷,并避免无效配置触发昂贵的页面导航操作。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-28 11:33:17 +08:00
parent 59c06b3a19
commit d7e19dcd52
+8 -3
View File
@@ -233,6 +233,7 @@ class AutoLib(MsgBase):
# result : -1 - terminate, 0 - success, 1 - failed, 2 - passed
result: int = 2
# login
auto_captcha: bool = login_config.get("auto_captcha", True)
if not self.__login_page.login(
@@ -249,10 +250,11 @@ class AutoLib(MsgBase):
"auto_checkin": run_mode_raw & 0x2,
"auto_renewal": run_mode_raw & 0x4,
}
# reserve
if run_mode["auto_reserve"]:
if self.__record_checker.canReserve(self.__shell, reserve_info["date"]):
if self.__reserve_checker.check(reserve_info):
if self.__record_checker.canReserve(self.__shell, reserve_info["date"]):
ctx = ReserveContext(
username=username,
date=reserve_info["date"],
@@ -272,11 +274,11 @@ class AutoLib(MsgBase):
result = 0
else:
result = 1
else:
result = 1
else:
self._showTrace(f"用户 {username} 无法预约, 已跳过")
result = 2
else:
result = 1
# checkin
last_result: int = result
@@ -317,8 +319,11 @@ class AutoLib(MsgBase):
# logout
if not self.__shell.logout():
self._showTrace(f"用户 {username} 退出登录失败, 尝试直接重载页面")
if not self.__initDriverUrl():
self._showTrace(f"用户 {username} 重载页面失败, 无法继续操作, 该任务已终止 !")
return -1
self._showTrace(f"用户 {username} 已退出登录")
return result
def run(