webuntis

TotalClaw 作者 totalclaw

对 Untis/WebUntis 学生时间表的只读访问权限。当您需要从 WebUntis 实例获取或汇总学生当前的日程安排(今天/本周/日期范围)、即将到来的课程、房间、教师或替换时使用。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw skills install shop:totalclaw:totalclaw~finnbusse-webuntis
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~finnbusse-webuntis/file -o finnbusse-webuntis.md
# WebUntis (Untis) timetable

Use the bundled script to log in and fetch the timetable via JSON-RPC.

## Security / credentials

- **Do not** ask the user to paste passwords into chat.
- Prefer a **dedicated read-only student account** if the school allows it.
- Credentials must be provided via environment variables (or injected securely by the operator).

Single profile:
  - `WEBUNTIS_BASE_URL` (e.g. `https://xyz.webuntis.com`)
  - `WEBUNTIS_SCHOOL` (school name / key used by WebUntis)
  - `WEBUNTIS_USER`
  - `WEBUNTIS_PASS`
  - Optional: `WEBUNTIS_ELEMENT_TYPE` (default `5` = student)
  - Optional: `WEBUNTIS_ELEMENT_ID` (if auto-detect fails)

Multiple profiles (parallel):
  - Set `WEBUNTIS_PROFILE=<name>` or pass `--profile <name>`
  - Provide env vars prefixed by the profile name, e.g. for profile `cdg`:
    - `WEBUNTIS_CDG_BASE_URL`
    - `WEBUNTIS_CDG_SCHOOL`
    - `WEBUNTIS_CDG_USER`
    - `WEBUNTIS_CDG_PASS`
    - optional: `WEBUNTIS_CDG_ELEMENT_TYPE`, `WEBUNTIS_CDG_ELEMENT_ID`

## Quick commands (exec)

Today:

```bash
cd skills/webuntis/scripts
./webuntis.py today

# or pick a profile
./webuntis.py --profile cdg today
```

Range:

```bash
cd skills/webuntis/scripts
./webuntis.py range 2026-02-10 2026-02-14
```

## Troubleshooting

If you get "Could not determine element-id":

1) Run once and capture the error.
2) Add `WEBUNTIS_ELEMENT_ID=<number>` and retry.

If auth fails:

- Verify `WEBUNTIS_BASE_URL` is correct for your school.
- Verify `WEBUNTIS_SCHOOL` matches the school key used by WebUntis.

## Output

The script prints one line per lesson/event:
`YYYY-MM-DD HH:MM-HH:MM · <subject> · Raum <room> · bei <teacher>`

---

## 中文说明

# WebUntis (Untis) 时间表

使用随附的脚本登录并通过 JSON-RPC 获取时间表。

## 安全 / 凭据

- **不要**要求用户将密码粘贴到聊天中。
- 如果学校允许,优先使用**专用的只读学生账户**。
- 凭据必须通过环境变量提供(或由运维人员安全注入)。

单一配置:
  - `WEBUNTIS_BASE_URL`(例如 `https://xyz.webuntis.com`)
  - `WEBUNTIS_SCHOOL`(WebUntis 使用的学校名称 / 键)
  - `WEBUNTIS_USER`
  - `WEBUNTIS_PASS`
  - 可选:`WEBUNTIS_ELEMENT_TYPE`(默认 `5` = 学生)
  - 可选:`WEBUNTIS_ELEMENT_ID`(如果自动检测失败)

多个配置(并行):
  - 设置 `WEBUNTIS_PROFILE=<name>` 或传入 `--profile <name>`
  - 提供以配置名称为前缀的环境变量,例如对于配置 `cdg`:
    - `WEBUNTIS_CDG_BASE_URL`
    - `WEBUNTIS_CDG_SCHOOL`
    - `WEBUNTIS_CDG_USER`
    - `WEBUNTIS_CDG_PASS`
    - 可选:`WEBUNTIS_CDG_ELEMENT_TYPE`、`WEBUNTIS_CDG_ELEMENT_ID`

## 快捷命令 (exec)

今天:

```bash
cd skills/webuntis/scripts
./webuntis.py today

# or pick a profile
./webuntis.py --profile cdg today
```

日期范围:

```bash
cd skills/webuntis/scripts
./webuntis.py range 2026-02-10 2026-02-14
```

## 故障排查

如果出现 "Could not determine element-id":

1) 运行一次并捕获错误。
2) 添加 `WEBUNTIS_ELEMENT_ID=<number>` 并重试。

如果身份验证失败:

- 确认 `WEBUNTIS_BASE_URL` 对于你的学校是正确的。
- 确认 `WEBUNTIS_SCHOOL` 与 WebUntis 使用的学校键匹配。

## 输出

脚本为每节课 / 每个事件打印一行:
`YYYY-MM-DD HH:MM-HH:MM · <subject> · Raum <room> · bei <teacher>`