From a33ff2c11789c4f659360eb39c75546153a74345 Mon Sep 17 00:00:00 2001 From: flt6 <1404262047@qq.com> Date: Wed, 9 Jul 2025 17:22:31 +0800 Subject: [PATCH] try to fix relogin --- main.py | 15 +++++++++------ utils.py | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 48b653a..872b118 100644 --- a/main.py +++ b/main.py @@ -353,6 +353,7 @@ class Grade(URP): "recap_password", ] self.env_check(required_keys) + self.interval_1 = int(environ.get("interval_1", 5)) self.interval_2 = int(environ.get("interval_2", 3600)) def query(self) -> tuple[dict[str, dict[str, str]], set[str]]: @@ -426,6 +427,8 @@ class Grade(URP): grades = new if err > 0: err -= 1 + sleep(self.interval_2) + logger.info(f"Next query will start after {self.interval_2}s") except ReloginException as e: logger.info("Relogin") sc_send("成绩监控", "重新登录") @@ -437,15 +440,15 @@ class Grade(URP): logger.error("Try to relogin") sc_send("成绩监控", "多次失败,尝试重新登录") self.login() + finally: + sleep(self.interval_1) - logger.info(f"Next query will start after {self.interval_2}s") - sleep(self.interval_2) logger.info("Normal terminated due to all grades is out.") sc_send("成绩监控", "所有成绩均已公布") if __name__ == "__main__": - les = Lessons() - les.auto_spider() - # gra = Grade() - # gra.auto_check() + # les = Lessons() + # les.auto_spider() + gra = Grade() + gra.auto_check() diff --git a/utils.py b/utils.py index 4481946..d4dcd1e 100644 --- a/utils.py +++ b/utils.py @@ -83,6 +83,7 @@ class URP: for attempt in range(1, max_retries + 1): try: response = func() + print(response.url) URP._judge_logout(response) return response except ( @@ -207,7 +208,7 @@ class URP: @staticmethod def _judge_logout(response: requests.Response): """检查账号是否在其他地方被登录""" - if "errorCode=concurrentSessionExpired" in response.url: + if "/login" in response.url: raise ReloginException("有人登录了您的账号!")