课程提醒 Skill
核心流程
1. 解析课程表
用户提供 Excel 课程表文件后,用脚本解析:
python3 scripts/class_reminder.py parse <excel文件> [--semester-start YYYY-MM-DD]
支持两种格式:
- 标准格式:每行一节课程,包含课程名称、星期、时间、地点等列
- 教师课表格式:行列式表格,行=时间段,列=星期,单元格=课程信息
解析后保存课程数据到 data/schedule.json(在工作区创建)。
2. 查询课程
# 明天的课程
python3 scripts/class_reminder.py tomorrow data/schedule.json
# 今天的课程
# 指定日期
python3 scripts/class_reminder.py date data/schedule.json --date 2026-04-25
3. 生成提醒文本
脚本返回的 formatted 字段即为可直接发送的提醒文案。
教师课表格式支持
表格结构:
- 行:时间段(第1-2节、第3-4节...)
- 列:星期一到星期日
- 单元格:课程信息,如
【实验】网络与系统安全 [1-4节][6-6周] [T2604-T2606]
课程信息解析:
- 课程类型:【实验】、【理论】等
- 课程名称:网络与系统安全
- 节次范围:[1-4节]
- 周次范围:[6-6周] 或 [11-12,14-14周]
- 教室:[T2604-T2606]
特殊处理:
- 一个单元格可包含多门课程(换行分隔)
- 自动展开节次范围和周次范围
- 支持复杂的周次格式(如 "11-12,14-14周")
定时提醒
设置每天提醒明日课程:
- 首次需要用户提供课程表文件并解析
- 使用 cron 或 heartbeat 定时检查
- 每次触发时运行
tomorrow命令,发送formatted文本
数据存储
解析后的课程数据保存到 data/schedule.json,后续查询直接读取,无需重复解析。
注意事项
- 学期开始日期影响周次计算,默认为当前学期估算(9月秋季/2月春季)
- 用户可显式指定
--semester-start覆盖默认值 - 调休、节假日需要手动更新课程表或添加备注
- 依赖 openpyxl,首次使用需
pip install openpyxl