A CLI client for PKU's Blackboard Learn teaching platform.
crates/course/app_id="blackboard") → Blackboard SSO endpoint callbackscraper crate (no JSON API available)src/main.rs — Clap CLI with subcommandssrc/commands.rs — Command implementationssrc/api.rs — HTML scraping logic, page parserssrc/display.rs — Terminal output formattingsrc/client.rs — reqwest client buildersCommandAliasFunctionlogin / logout / statusIAAA → Blackboard authcoursesList enrolled courses (supports --all for all semesters)infoCourse detailscontentBrowse course content treeassignmentsList assignments with deadlinesassignmentView single assignmentbrowseInteractive course content browserassignment-download``adlDownload assignment attachmentsdownloadDownload course filesvideo-download``vdlDownload course recordingsvideos``vlsList available videossubmitUpload homework filesotpTOTP 2FA management
bash
# Check session status
info-auth check
# Auto-login (reads credentials from OS keyring, no password needed)
course login -p
anyhow::Result with .context("中文描述")~/.config/info/course/info_common::credential (keyring → env → interactive)