A CLI client for PKU's course selection system with auto-enrollment automation.
crates/elective/app_id="elective") → elective SSO endpoint callbacksrc/main.rs — Clap CLI with subcommandssrc/commands.rs — Command implementations including auto-enroll loopsrc/api.rs — HTML scraping, CAPTCHA image extractionsrc/display.rs — Terminal output formattingsrc/client.rs — reqwest client builders| Command | Alias | Function |
|---|---|---|
| --------- | ------- | ---------- |
login | IAAA login (supports --dual for dual-degree students) | |
logout / status | Session management | |
show | View current course selections | |
list | ls | Browse available courses for add/drop |
set | Add a course to auto-enroll target list | |
unset | Remove from auto-enroll targets | |
config-captcha | Configure CAPTCHA solver backend | |
launch | Start auto-enrollment polling loop | |
otp | TOTP 2FA management |
The config-captcha command supports multiple recognition backends:
manual — Display CAPTCHA image, user inputs answerutool — UTool OCR servicettshitu — TTShiTu recognition APIyunma — Yunma recognition API# Check session status
info-auth check
# Auto-login (reads credentials from OS keyring, no password needed)
elective login -p # single degree
elective login -p --dual major # dual degree - major
elective login -p --dual minor # dual degree - minor
Note: Dual-degree students MUST specify --dual major or --dual minor, otherwise login will fail with an error.
--dual flag at login for separate sessionanyhow::Result with .context("中文描述")~/.config/info/elective/info_common::credential (keyring → env → interactive)共 1 个版本