Compare commits

...

2 Commits

Author SHA1 Message Date
0bf300d95b do not send for relogin 2025-07-10 10:02:33 +08:00
a33ff2c117 try to fix relogin 2025-07-09 17:22:31 +08:00
2 changed files with 12 additions and 8 deletions

17
main.py
View File

@ -353,6 +353,7 @@ class Grade(URP):
"recap_password", "recap_password",
] ]
self.env_check(required_keys) self.env_check(required_keys)
self.interval_1 = int(environ.get("interval_1", 5))
self.interval_2 = int(environ.get("interval_2", 3600)) self.interval_2 = int(environ.get("interval_2", 3600))
def query(self) -> tuple[dict[str, dict[str, str]], set[str]]: def query(self) -> tuple[dict[str, dict[str, str]], set[str]]:
@ -426,9 +427,11 @@ class Grade(URP):
grades = new grades = new
if err > 0: if err > 0:
err -= 1 err -= 1
sleep(self.interval_2)
logger.info(f"Next query will start after {self.interval_2}s")
except ReloginException as e: except ReloginException as e:
logger.info("Relogin") logger.info("Relogin")
sc_send("成绩监控", "重新登录") # sc_send("成绩监控", "重新登录")
self.login() self.login()
except Exception as e: except Exception as e:
logger.error(f"Failed to update due to {e}") logger.error(f"Failed to update due to {e}")
@ -437,15 +440,15 @@ class Grade(URP):
logger.error("Try to relogin") logger.error("Try to relogin")
sc_send("成绩监控", "多次失败,尝试重新登录") sc_send("成绩监控", "多次失败,尝试重新登录")
self.login() 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.") logger.info("Normal terminated due to all grades is out.")
sc_send("成绩监控", "所有成绩均已公布") sc_send("成绩监控", "所有成绩均已公布")
if __name__ == "__main__": if __name__ == "__main__":
les = Lessons() # les = Lessons()
les.auto_spider() # les.auto_spider()
# gra = Grade() gra = Grade()
# gra.auto_check() gra.auto_check()

View File

@ -83,6 +83,7 @@ class URP:
for attempt in range(1, max_retries + 1): for attempt in range(1, max_retries + 1):
try: try:
response = func() response = func()
print(response.url)
URP._judge_logout(response) URP._judge_logout(response)
return response return response
except ( except (
@ -207,7 +208,7 @@ class URP:
@staticmethod @staticmethod
def _judge_logout(response: requests.Response): def _judge_logout(response: requests.Response):
"""检查账号是否在其他地方被登录""" """检查账号是否在其他地方被登录"""
if "errorCode=concurrentSessionExpired" in response.url: if "/login" in response.url:
raise ReloginException("有人登录了您的账号!") raise ReloginException("有人登录了您的账号!")