MCPcopy Index your code
hub / github.com/FarmerChillax/new-school-sdk

github.com/FarmerChillax/new-school-sdk @1.8.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.8.1 ↗ · + Follow
198 symbols 625 edges 38 files 48 documented · 24% updated 22d ago1.8.1 · 2026-03-09★ 11110 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

新版正方系统 Python SDK。(支持自动识别、处理滑块验证码与常规验证码,如果觉得还不错,给个小星星趴~⭐)

这是全网唯一一个自动处理验证码的新版教务系统 SDK :p

并且本项目有完善的 type hints

Downloads python3 license stars forks PyPI Version

📢📢📢 本项目理论上支持教务系统所有功能,兼容所有学校
使用过程中如有遇到本 SDK 暂不支持的功能,请使用 proxy_request

在线文档

Roadmap

支持的登录/验证码方式

  • 帐号密码登录
  • 滑块验证码登录
  • 图形验证码登录
  • cookie 登录(用于扫码登录、OIDC 等场景)

测试环境

  • 3.8 <= Python <= 3.13
  • 默认验证码识别方式(推理): CPU

Usage

$ pip install school-sdk
# or
$ pip install zf-school-sdk

如果机器内存不足,可以使用 pip --no-cache-dir 选项来安装 e.g. pip --no-cache-dir install school-sdk

或者指定构建路径,e.g. pip install -b ~/pip_build_dir school-sdk

from school_sdk import SchoolClient
from school_sdk.client import UserClient

# 先实例化一个学校,再实例化用户
school = SchoolClient("172.16.254.1")
user:UserClient = school.user_login("2018xxxxx", "xxxxxxxx")

# 获取 2020 学年第二学期的课程
course = user.get_schedule(year=2020, term=2)
print(course)

使用示例参见 examples

Api Function

Api Description Argument
user_login 登陆函数 account, password
get_schedule 课表查询 year, term
get_score 成绩查询 year, term
get_info 获取个人信息 None
refresh_info 刷新个人信息 None
check_session 检查session并其失效后重登录 None
proxy_request 补充 sdk 未实现的业务功能,以支持各种登录后的教务系统操作 method, url_or_endpoint, **kwargs

School-SDK Options

Option Default Description
host 不存在默认值 教务系统地址(必填)
port 80 端口号
ssl False 教务系统是否使用https
name None 学校名称
exist_verify False 是否存在验证码
captcha_type captcha 验证码类型,枚举类型(kaptcha: 常规 或 captcha: 滑块)
retry 10 登录重试次数
lan_host None 内网地址(暂不可用)
lan_port 80 内网地址端口(暂不可用)
timeout 10 全局请求延时
url_endpoints None 地址配置

相关项目

帮教务系统做负载均衡:https://github.com/FarmerChillax/school-load-balance

(如果你们学校教务系统抢课经常崩溃,可以考虑看看这个 repo)

  • 新版正方教务系统: https://github.com/FarmerChillax/new-school-sdk
  • 旧版正方教务系统: https://github.com/dairoot/school-api
  • SDK的Flask扩展: https://github.com/FarmerChillax/flask-school
  • 验证码识别: https://github.com/FarmerChillax/new-zfxfzb-code

Core symbols most depended-on inside this repo

get
called by 58
school_sdk/client/api/__init__.py
sub2
called by 12
school_sdk/PyRsa/pyjsbn.py
clamp
called by 8
school_sdk/PyRsa/pyjsbn.py
abs
called by 7
school_sdk/PyRsa/pyjsbn.py
b64tohex
called by 7
school_sdk/PyRsa/pyb64.py
get_schedule
called by 6
school_sdk/client/__init__.py
get_score
called by 6
school_sdk/client/api/score.py
post
called by 6
school_sdk/client/api/__init__.py

Shape

Method 163
Class 26
Function 9

Languages

Python100%

Modules by API surface

school_sdk/PyRsa/pyjsbn.py47 symbols
school_sdk/client/__init__.py21 symbols
school_sdk/client/api/login.py14 symbols
school_sdk/client/api/schedule_parse.py11 symbols
school_sdk/client/api/schedules.py10 symbols
school_sdk/PyRsa/pyrng.py10 symbols
school_sdk/client/api/score.py9 symbols
school_sdk/client/api/__init__.py9 symbols
school_sdk/PyRsa/pyrsa.py8 symbols
school_sdk/client/exceptions.py7 symbols
school_sdk/client/base.py7 symbols
school_sdk/check_code/dataset.py6 symbols

For agents

$ claude mcp add new-school-sdk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page