北航博雅 WebVPN 命令行工具,支持课程缓存、自主签到课程自动选课、签到与签退
Project description
AutoBoya
AutoBoya 是一个用于北航博雅系统的 Python 命令行工具。它通过 WebVPN 登录博雅系统,支持课程缓存、课程列表查看、已选课程与课程类型统计展示,并可以在本地后台循环中执行自主签到课程的自动选课、签到和签退。
快速开始
PyPI 包名:autoboya(当前版本 0.1.4)。
# 1. 从 PyPI 安装
pip install autoboya
# 2. 初始化本地数据目录,默认位于 ~/.autoboya
autoboya init
# 3. 添加北航账号。优先使用系统钥匙串保存密码
# --campus 支持 北京 / 杭州,默认北京
autoboya user add 223xxxxx --campus 北京 --password-stdin
# 4. 通过 WebVPN 登录。若需要验证码,命令会显示验证码图片路径并等待输入
autoboya login 223xxxxx
# 5. 刷新课程缓存并查看可选课程、自动选课预览
autoboya courses refresh
autoboya courses list --only-selectable
autoboya courses auto-preview
# 6. 调试时执行一轮自动化,或启动长期后台循环
autoboya run-once
autoboya run
autoboya stop
PATH 说明
如果安装后提示找不到 autoboya 命令,可以先使用 Python 模块入口:
python -m autoboya --help
然后将 Python 用户脚本目录加入系统 PATH。
macOS / Linux:
python -m pip install --user autoboya
echo 'export PATH="$(python3 -m site --user-base)/bin:$PATH"' >> ~/.zprofile
Windows PowerShell:
py -m pip install --user autoboya
$d = py -c "import sysconfig; print(sysconfig.get_path('scripts','nt_user'))"; [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path","User") + ";" + $d, "User")
命令速查
通用命令:
autoboya -h
autoboya --help
autoboya version
autoboya init
autoboya doctor
账号与登录:
autoboya user add <username> --password-stdin
autoboya user add <username> --campus 北京 --password-stdin
autoboya user add <username> --campus 杭州 --password-stdin
autoboya user add <username> --unsafe-store-password
autoboya user list
autoboya user remove <username>
autoboya login <username>
--campus 表示用户所属校区,只接受 北京 或 杭州,默认值为 北京。旧版本已经添加过的用户会按 北京 处理;重新执行 autoboya user add <username> --campus 杭州 ... 可以更新用户校区。
课程与缓存:
autoboya courses refresh
autoboya courses refresh --user <username>
autoboya courses list
autoboya courses list --only-selectable
autoboya courses list --json
autoboya courses show <course_id>
autoboya courses show <course_id> --json
autoboya courses auto-preview
autoboya courses auto-preview --json
autoboya courses refresh 会完整分页拉取课程列表,并为所有已启用用户刷新已选课程和统计缓存。使用 --user 可以只刷新指定用户的已选课程和统计缓存。
已选课程与统计:
autoboya selected
autoboya selected --user <username>
autoboya selected --json
autoboya stats
autoboya stats --user <username>
autoboya stats --json
后台自动化:
autoboya run
autoboya run-once
autoboya stop
autoboya run 会启动后台进程后立即返回,不会在当前终端持续输出循环日志。后台日志写入 ~/.autoboya/logs/autoboya.log,可以用 autoboya logs tail 查看。后台每分钟扫描本地缓存时会为每个已启用用户写入一条 automation heartbeat,其中 auto_boya_check 表示该用户当前有几门自主签到课程处于可自动签到/签退窗口内;常规签到或没有位置签到配置的课程不会计入。autoboya run-once 仍在当前终端执行单轮扫描,适合调试。
手动操作:
autoboya select <course_id> --user <username> --yes
autoboya select <course_id> --all-users --yes
autoboya drop <course_id> --user <username> --yes
autoboya drop <course_id> --all-users --yes
autoboya sign <course_id> --user <username>
autoboya sign <course_id> --all-users
autoboya signout <course_id> --user <username>
autoboya signout <course_id> --all-users
select 和 drop 是真实选课/退课操作,需要显式传入 --yes 确认。sign 和 signout 要求课程已经被对应用户选中,并会在签到点范围内随机生成坐标后提交真实签到或签退请求。
日志:
autoboya logs tail
autoboya logs tail --lines 200
所有命令和命令组都支持 -h 与 --help。
自动化策略
AutoBoya 不会自动选择所有可选课程。后台循环只会自动选择同时满足以下条件的缓存课程:
- 当前处于可选时间窗口内;
- 课程未满;
- 签到方式为“自主签到”,依据是
courseSignConfig.signPointList非空; - 课程分类不是“其他方面”。
“常规签到”、没有位置签到配置、分类为“其他方面”的课程都会被跳过。运行 autoboya courses auto-preview 可以在启动后台自动化前查看当前会被自动选课策略纳入的课程。
后台执行真实自动选课时还会按用户校区过滤课程:系统会扫描课程名 name、课程地点 location 和校区字段 campus,只要其中出现“杭州”,就判定为杭州课程。--campus 杭州 的用户只会自动选择杭州课程;--campus 北京 的用户会自动选择非杭州课程。手动 autoboya select 不做这层校区过滤,仍以操作者明确指定的课程 ID 为准。
验证码处理方式与 UBAA 保持一致:命令会下载 SSO 验证码图片并提示操作者手动输入,不进行 OCR,也不绕过验证码。
本地数据
AutoBoya 的本地状态默认存储在 ~/.autoboya,包括账号元数据、设置、课程缓存、已选课程缓存、统计缓存、日志、运行状态文件、验证码图片和会话元数据。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autoboya-0.1.4.tar.gz.
File metadata
- Download URL: autoboya-0.1.4.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48801b5230bdf7b0df01ded199b24799ddc560a567d2a7ac9498b3a8011ba27b
|
|
| MD5 |
34e302e1b637cbc307fc77ddbec9f84f
|
|
| BLAKE2b-256 |
5a62048d1990f6c427c73e90bbea7237ca13797e113381adf55900d3e25a593f
|
File details
Details for the file autoboya-0.1.4-py3-none-any.whl.
File metadata
- Download URL: autoboya-0.1.4-py3-none-any.whl
- Upload date:
- Size: 31.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00a239f0311d1c7ddf097f70a1261bbe063b1aa4a2f8278010a498695c2cac70
|
|
| MD5 |
3c1c7cfe081cc8649fb6da846d53bc43
|
|
| BLAKE2b-256 |
2d1714e1a8d0154d413ac6f082835faa845e6409c6f6a3bca929c3385e554fc1
|