Metadata-Version: 2.4
Name: nonebot-plugin-class-schedule
Version: 1.0.1
Summary: 功能完善的 NoneBot2 课程表插件
Author-email: INKT-love <inkt@example.com>
License: MIT
Project-URL: Homepage, https://github.com/INKT-love/nonebot-plugin-class-schedule
Project-URL: Repository, https://github.com/INKT-love/nonebot-plugin-class-schedule
Project-URL: Issues, https://github.com/INKT-love/nonebot-plugin-class-schedule/issues
Keywords: nonebot,nonebot2,class,schedule,course
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: nonebot2>=2.0.0
Requires-Dist: nonebot-adapter-onebot>=2.0.0
Provides-Extra: image
Requires-Dist: nonebot-plugin-htmlrender>=0.2.0; extra == "image"
Provides-Extra: reminder
Requires-Dist: nonebot-plugin-apscheduler>=0.2.0; extra == "reminder"
Provides-Extra: all
Requires-Dist: nonebot-plugin-htmlrender>=0.2.0; extra == "all"
Requires-Dist: nonebot-plugin-apscheduler>=0.2.0; extra == "all"
Dynamic: license-file

# nonebot-plugin-class-schedule

一个功能完善的 NoneBot2 课程表插件，支持课程查询、课前提醒、节假日识别等功能。

## 功能特性

### 课程查询
- **实时查询**: `/现在什么课` - 查看当前课程状态
- **下一节课**: `/等会什么课` - 查看下一节课及倒计时
- **每日课表**: `/今天什么课` / `/课表` - 查看今日课程
- **指定日期**: `/周一` ~ `/周五` - 查看指定星期课程
- **本周概览**: `/本周课表` - 查看本周课程安排
- **课程搜索**: `/查课 <课目>` - 按课程名搜索

### 数据导入
- **课表导入**: `/导入课表` - 支持自然语言格式导入
- **作息表导入**: `/导入作息表` - 自定义作息时间
- **智能提醒**: 导入后自动检测缺失数据并提醒

### 提醒功能
- **课前提醒**: `/课前提醒` - 提前 N 分钟私聊提醒
- **假期订阅**: `/假期订阅` - 假期前 5 天每天提醒
- **节假日识别**: 内置 2026-2027 年法定节假日数据

### 其他功能
- **放假查询**: `/放假没` - 查询今天是否放假
- **输出风格**: `/课表风格` - 切换文字/图片输出
- **周次查询**: `/第几周` - 查看当前教学周

## 安装

```bash
pip install nonebot-plugin-class-schedule
```

## 配置

在 `.env` 文件中添加：

```env
CLASS_SCHEDULE_DATA_DIR=./data/class_schedule
```

## 使用说明

### 导入课表

发送 `/导入课表` 后按提示发送课表内容：

```
周一：
早读 英语（李老师）
第1节 数学 @A201
第2节 物理(王老师)
第3节 化学
晚自习 语文

周二：
第1节 英语
第2节 数学
...
```

**支持格式**：
- 星期：周一/星期一/周一：
- 节次：早读/第1节/第一节/1节/晚自习
- 老师：(老师名) 或（老师名）
- 地点：@地点 或 #地点

### 导入作息表

发送 `/导入作息表` 后按提示发送：

```
早读 07:00-07:30
第1节 08:00-08:45
第2节 08:55-09:40
午休 12:00-14:00
第5节 14:00-14:45
晚自习 18:20-21:00
```

### 设置课前提醒

```
/课前提醒 开          # 开启提醒
/课前提醒 关          # 关闭提醒
/课前提醒 提前5分钟   # 设置提前时间（1-30分钟）
```

### 设置假期订阅

```
/假期订阅 开    # 开启假期提醒
/假期订阅 关    # 关闭假期提醒
```

## 命令列表

| 命令 | 说明 |
|------|------|
| `/课程表帮助` | 查看帮助信息 |
| `/现在什么课` | 当前课程状态 |
| `/等会什么课` | 下一节课 |
| `/今天什么课` | 今日课表 |
| `/明天什么课` | 明日课表 |
| `/周一` ~ `/周五` | 指定日期课表 |
| `/本周课表` | 本周概览 |
| `/第几周` | 当前周次 |
| `/我的课表` | 完整课表 |
| `/查课 <课目>` | 搜索课程 |
| `/导入课表` | 导入课表 |
| `/导入作息表` | 导入作息表 |
| `/课前提醒` | 管理课前提醒 |
| `/假期订阅` | 管理假期提醒 |
| `/放假没` | 查询节假日 |
| `/课表风格` | 切换输出风格 |

## 数据存储

插件使用 JSON 文件存储数据：
- `data/schedules/` - 用户课表数据
- `data/preferences.json` - 用户偏好设置（输出风格、提醒开关等）

## 依赖

- nonebot2 >= 2.0.0
- nonebot-adapter-onebot >= 2.0.0
- nonebot-plugin-htmlrender（可选，用于图片输出）
- nonebot-plugin-apscheduler（用于定时提醒）

## 许可证

MIT License

## 贡献

欢迎提交 Issue 和 Pull Request！
