api module#

class api.UserInfo[源代码]#

基类:TypedDict

name: str#
usercode: str#
class api.ZZUPy(usercode: str, password: str, cookie: SimpleCookie | None = None)[源代码]#

基类:object

初始化一个 ZZUPy 对象

参数:
  • usercode (str) – 学号

  • password (str) – 密码

  • cookie (SimpleCookie) – 统一认证 Cookie。目前必须包含 ‘userToken’,否则会抛出 ValueError

抛出:

ValueError – Cookie 中缺少 ‘userToken’ 时抛出

get_user_token() str[源代码]#

获取本次会话的 userToken

property is_logged_in: bool#

判断是否已登录

login(app_version: str = 'SWSuperApp/1.0.42', app_id: str = 'com.supwisdom.zzu', os_type: str = 'android') LoginResult[源代码]#

登录

参数:
  • app_version (str) – APP 版本 ,一般类似 “SWSuperApp/1.0.39” ,可自行更新版本号。

  • app_id (str) – APP 包名,一般不需要修改

  • os_type (str) – 系统类型,一般不需要修改

返回:

Tuple[str, str]

  • usercode (str) – 学号

  • name (str) – 姓名

返回类型:

Tuple[str,str]

抛出:

LoginException – 登录失败时抛出

async login_async(app_version: str = 'SWSuperApp/1.0.42', app_id: str = 'com.supwisdom.zzu', os_type: str = 'android') LoginResult[源代码]#

登录

参数:
  • app_version (str) – APP 版本 ,一般类似 “SWSuperApp/1.0.39” ,可自行更新版本号。

  • app_id (str) – APP 包名,一般不需要修改

  • os_type (str) – 系统类型,一般不需要修改

返回:

Tuple[str, str]

  • usercode (str) – 学号

  • name (str) – 姓名

返回类型:

Tuple[str,str]

抛出:

LoginException – 登录失败时抛出

set_device_params(**kwargs: Unpack[Dict[str, Any]]) None[源代码]#

设置设备参数。这些参数都需要抓包获取,但其实可有可无,因为目前并没有观察到相关风控机制

参数:
  • deviceName (str) – 设备名 ,位于 “passwordLogin” 请求的 User-Agent 中,组成为 ‘{appVersion}({deviceName})’

  • deviceId (str) – 设备 ID ,

  • deviceInfo (str) – 设备信息,位于名为 “X-Device-Info” 的请求头中

  • deviceInfos (str) – 设备信息,位于名为 “X-Device-Infos” 的请求头中

  • userAgentPrecursor (str) – 设备 UA 前体 ,只需要包含 “SuperApp” 或 “uni-app Html5Plus/1.0 (Immersed/38.666668)” 前面的部分