← 返回
未分类

PKU BDKJ

北京大学空间 (bdkj.pku.edu.cn) 学术研讨教室预约 CLI 工具。当用户提及 bdkj、北大空间、学术研讨教室、教室预约、研讨间、借教室 或想要查询/预约/取消 二教/四教/地学 教学楼里的空闲学术研讨教室时使用此 skill。支持保存固定参与人分组(如课题组),重复发起预约时只需 `--grou...
北京大学空间(bdkj.pku.edu.cn)学术研讨教室预约CLI工具。当用户提及 bdkj、北大空间、学术研讨教室、教室预约、研讨间、借教室,或需查询/预约/取消二教、四教、地学教学楼的空闲学术研讨教室时使用。支持保存固定参与人分组(如课题组),重复预约时只需 --group 参数。
wjsoj wjsoj 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 308
下载
💾 0
安装
1
版本
#bdkj#classroom#cli#latest#pku#reservation#rust

概述

bdkj - 北大空间学术研讨教室预约 CLI

A CLI client for PKU's academic discussion room reservation system at bdkj.pku.edu.cn.

Architecture

  • Crate location: crates/bdkj/
  • Auth flow: IAAA SSO (app_id="bdkj") → /login/oauth 回调种 JWTUser/SESSION/rememberMe cookies
  • API: 混合 JSON (/room/classRoom, /classRoom/seachStudent, /classRoom/historyTime) + HTML form 步骤 (/classRoom/applyStep, /classRoom/handle/submit) + GET 取消 (/classRoom/cancelApply/)
  • HTML 列表:用 scraper 解析 div#results > div.row

Key Source Files

  • src/main.rs — tokio::main,调用 pku_bdkj::run()
  • src/lib.rs — Clap CLI 定义 + dispatch
  • src/client.rs — reqwest client 构造
  • src/login.rs — IAAA 登录 + JWTUser cookie 提取
  • src/api.rs — 教室/时段/学生/提交/取消/列出的核心 API
  • src/commands.rs — 各子命令实现
  • src/display.rs — 终端渲染(colored)
  • src/groups.rs — 参与人分组持久化(~/.config/info/bdkj/groups.json

CLI Commands

Command用途
--------------
login -pIAAA 密码登录(keyring → env → interactive)
status / logout会话管理
rooms 列出教学楼下所有教室(二教/四教/地学)
history 查询教室已被预约时段
student 查询学生信息
list / ls列出当前用户的预约记录
reserve --room-id ... --begin ... --end ... --reason ... -g 提交一次预约(用分组)
reserve ... -p 学号:姓名 -p ...提交一次预约(手动列参与人)
cancel 取消一次预约
group list / show / set -p ... / remove 管理参与人分组

--group--participant 互斥;两者必须至少指定一个。申请人自己也必须包含在参与人列表中。

Auto-Login for AI Agents

info-auth check
bdkj login -p              # 读 keyring,不需要密码
bdkj group set lab -p 2200011523:张三 -p 2200011524:李四
bdkj reserve --room-id 924131235851276288 \
  --begin "2026-04-20 14:00:00" --end "2026-04-20 16:00:00" \
  --reason "课题组讨论" -g lab

Development Notes

  • 所有文案中文
  • 错误用 anyhow::Result + .context("中文描述")
  • Session 持久化 ~/.config/info/bdkj/;groups 在同目录下 groups.json
  • submit_apply 的成功判据是重定向后 URL path 为 /classRoom,而不是扫 layer.msg(页面模板里有无关的 layer.msg 调用会误命中)
  • 教室/教学楼 ID 需要硬编码的 building 常量(见 api.rs

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 23:50 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 200 📥 68,539
dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 689 📥 332,545
it-ops-security

PKU Info Auth

wjsoj
PKU 统一凭据管理 CLI(统一凭据管理)。当用户或 AI Agent 需要对 PKU服务进行身份验证或管理已存储的凭据时使用此技能。
★ 0 📥 542