format
This commit is contained in:
41
utils.py
41
utils.py
@ -1,29 +1,37 @@
|
||||
from serverchan_sdk import sc_send as _sc_send
|
||||
from datetime import datetime
|
||||
import logging
|
||||
from pathlib import Path
|
||||
from os import environ
|
||||
from dotenv import load_dotenv
|
||||
import requests
|
||||
import base64
|
||||
import hashlib
|
||||
import json
|
||||
import logging
|
||||
import re
|
||||
from typing import NoReturn,Optional,Iterable
|
||||
from datetime import datetime
|
||||
from os import environ
|
||||
from pathlib import Path
|
||||
from typing import Iterable, NoReturn, Optional
|
||||
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
from serverchan_sdk import sc_send as _sc_send
|
||||
|
||||
|
||||
class LessonsException(Exception):
|
||||
"""自定义异常类"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class ReloginException(LessonsException):
|
||||
"""用于处理需要重新登录的异常"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
# 配置日志
|
||||
logging.basicConfig(
|
||||
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def sc_send(title: str, desp: str):
|
||||
if not environ.get("SC_KEY"):
|
||||
logger.error("SC_KEY 未设置,无法发送通知")
|
||||
@ -43,16 +51,17 @@ def log_init():
|
||||
file.setLevel(logging.INFO)
|
||||
logger.addHandler(file) # 日志输出到文件
|
||||
|
||||
|
||||
class URP:
|
||||
def __init__(self,base=None):
|
||||
def __init__(self, base=None):
|
||||
self.session = requests.session()
|
||||
if base is None:
|
||||
self.base = environ.get("base","http://jwstudent.lnu.edu.cn")
|
||||
self.base = environ.get("base", "http://jwstudent.lnu.edu.cn")
|
||||
else:
|
||||
self.base = base
|
||||
|
||||
|
||||
@staticmethod
|
||||
def env_check(required_keys:Optional[Iterable] = None) -> None|NoReturn:
|
||||
def env_check(required_keys: Optional[Iterable] = None) -> None | NoReturn:
|
||||
# 检查必需的环境变量
|
||||
if required_keys is None:
|
||||
required_keys = [
|
||||
@ -65,7 +74,7 @@ class URP:
|
||||
for key in required_keys:
|
||||
if not environ.get(key):
|
||||
raise LessonsException(f"请在环境变量中设置{key}")
|
||||
|
||||
|
||||
@staticmethod
|
||||
def _retry_request(
|
||||
func, max_retries: int = 10, error_msg: str = "请求失败"
|
||||
@ -123,7 +132,7 @@ class URP:
|
||||
md5_part2 = hashlib.md5(string.encode()).hexdigest().lower()
|
||||
final_result = md5_part1 + "*" + md5_part2
|
||||
return final_result
|
||||
|
||||
|
||||
def _login(self):
|
||||
"""登录模块"""
|
||||
username = environ.get("uname")
|
||||
@ -195,7 +204,6 @@ class URP:
|
||||
if not flag:
|
||||
raise LessonsException("登录失败,无法获取token")
|
||||
|
||||
|
||||
@staticmethod
|
||||
def _judge_logout(response: requests.Response):
|
||||
"""检查账号是否在其他地方被登录"""
|
||||
@ -203,6 +211,5 @@ class URP:
|
||||
raise ReloginException("有人登录了您的账号!")
|
||||
|
||||
|
||||
|
||||
load_dotenv(override=True)
|
||||
log_init()
|
||||
log_init()
|
||||
|
Reference in New Issue
Block a user