webuntis

📅 智能课程表一键速查助手

基于 WebUntis 官方 API 的学生课程表只读查询工具,支持多账户配置,帮助师生快速获取日程、教室及代课信息。

收藏
2.1k
安装
598
版本
v1.0.1
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

webuntis skill 通过调用 WebUntis 官方 JSON-RPC API,为用户提供学生课程表的只读查询能力。用户需通过环境变量配置学校服务器地址、校名、账号密码等凭证,即可使用 today 命令查询当日课表,或使用 range 命令指定日期范围获取完整日程。该 skill 支持多账户并行配置,通过 --profile 参数切换不同学生档案,适合管理多个学生账户的家庭或教育机构场景。

显著优点

1. 功能聚焦单一:仅执行只读查询,无写入操作,从根本上降低数据损坏风险。
2. 凭证管理规范:强制使用环境变量传递敏感信息,避免密码硬编码或命令行泄露。

3. 多账户支持:内置 profile 机制,可并行管理多个学生账户,扩展性强。

4. 输出简洁直观:每行课程信息包含日期时间、科目、教室、教师,便于快速浏览和二次处理。

5. 自动 ID 推断:支持自动检测 element-id,降低配置门槛。

潜在缺点与局限性

  • 依赖外部服务:完全依赖学校 WebUntis 实例的可用性和网络连通性,若学校服务器故障则无法使用。
  • 仅支持学生视角:默认 element_type 为 5(学生),教师或教室视角需手动配置,文档说明有限。
  • 无缓存机制:每次查询均实时请求 API,高频调用可能触发学校端限流。
  • 错误处理较基础:自动检测失败时需用户手动查找 element-id,对非技术用户不够友好。

适合的目标群体

  • 需要定期查看孩子课程表的家长
  • 希望自动化日程提醒的学生
  • 教育机构 IT 管理员集成至内部系统
  • 开发教育类应用的工程师作为数据层组件

使用风险

  • 凭证安全:虽使用环境变量,但若部署环境日志配置不当,仍可能泄露敏感信息。
  • 网络稳定性:HTTPS 依赖学校证书有效性,证书过期或配置错误将导致连接失败。
  • API 变更风险:WebUntis 官方 API 若发生不兼容更新,skill 可能需同步维护。
  • 性能瓶颈:大规模并发查询可能受限于学校服务器响应能力,不适合高并发场景。

安全解读

核心用法

WebUntis Skill 通过 Python 脚本调用 WebUntis 官方 JSON-RPC API,实现学生课程表的只读查询。主要功能包括:

  • 今日课程查询./webuntis.py today
  • 日期范围查询./webuntis.py range YYYY-MM-DD YYYY-MM-DD
  • 多账户配置:通过 --profile <name> 支持并行管理多个学生账户

配置要求

所有敏感信息通过环境变量注入,避免硬编码风险:

  • WEBUNTIS_BASE_URL:学校 WebUntis 实例地址
  • WEBUNTIS_SCHOOL:学校标识密钥
  • WEBUNTIS_USER / WEBUNTIS_PASS:学生账户凭证
  • 可选 WEBUNTIS_ELEMENT_TYPE(默认5=学生)和 WEBUNTIS_ELEMENT_ID

显著优点

1. 安全设计优先:凭证完全依赖环境变量,无密码泄露风险;明确禁止用户在聊天中粘贴密码
2. 权限最小化:纯只读操作,通过官方 API 获取数据,无修改学生记录或系统配置的能力

3. 网络行为可控:请求严格限定于用户配置的 BASE_URL,无第三方追踪或数据外传

4. 代码质量优秀:348行代码结构清晰,使用类型注解和详细文档字符串,无 eval/exec/subprocess 等危险函数

5. 依赖简洁安全:仅依赖主流 requests 库,无已知 CVE 漏洞,依赖树简单无 typosquatting 风险

6. 作者身份可验证:GitHub 账号活跃(20个公开仓库),个人博客可访问,身份真实性可确认

潜在局限

  • 外部依赖依赖:依赖 requests 库(虽风险低,但非 Python 标准库)
  • API 稳定性依赖:功能受 WebUntis 官方 API 变更影响,建议加强响应 Schema 验证
  • 个人开发者维护(T3):非知名组织或基金会背书,建议关注更新动态
  • 许可证未声明:当前未明确开源许可条款
  • 需手动配置 ELEMENT_ID:部分学校环境需手动获取并配置学生元素 ID

适合人群

  • 学生/家长:需定期查询课程表、教室、教师及代课安排
  • 学校 IT 管理员:希望为学生提供安全的只读时间表访问方案
  • 自动化工作流用户:需将课程表数据集成到个人日历或通知系统

常规风险

  • 凭证配置风险:若环境变量被误配置到其他进程可见区域,存在泄露可能
  • 依赖过时风险requests 库需定期审计安全更新
  • API 端点配置错误:错误的 BASE_URL 可能导致认证失败或连接至非目标服务器
  • 数据隐私注意:课程表包含学生行踪信息,环境变量配置需符合 GDPR 数据最小化原则

安全认证结果

  • 综合评分:92/100(优秀)
  • 安全等级:S
  • 来源可信度:T3(个人开发者,身份可验证)
  • 关键合规项:GDPR 数据最小化 ✓、凭证安全存储 ✓、权限最小化 ✓、无隐蔽外传 ✓

webuntis 内容

scripts文件夹
手动下载zip · 4.9 kB
webuntis.pytext/plain
请选择文件