Compare commits
2 Commits
d56d2a3267
...
main
Author | SHA1 | Date | |
---|---|---|---|
0bf300d95b | |||
a33ff2c117 |
17
main.py
17
main.py
@ -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()
|
||||||
|
3
utils.py
3
utils.py
@ -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("有人登录了您的账号!")
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user