# 猴子课表 **Repository Path**: idayi/monkey-schedule ## Basic Information - **Project Name**: 猴子课表 - **Description**: 基于猴子的一个nonebot插件。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2025-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nonebot-plugin-schedule-manager 一个将原有 schedule 模块课表功能独立拆分、基于 NoneBot 2 实现的独立插件。保留核心功能(课表查询/添加/删除/导入/提醒/周次设置等),并优化结构与渲染(支持图片化课表与帮助)。 ## 功能概览 - 课表查询(图片渲染): - 本周/下周/第 N 周 周课表 - 明天/后天/下节课 - 总课表汇总 - 群内 @ 指定成员查看 TA 的课表 - 课表维护: - 添加课程、删除课程 - 导入第三方数据(如 WakeUp / 小爱 同学导出) - 周次与学期管理: - 设置开学日期(用于计算当前周) - 设置群默认周、用户覆盖周 - 提醒: - 绑定群提醒、设置提前分钟、开关提醒 - 帮助: - #sc / #sc help / sc help 输出帮助(优先图片化,失败回退文本) 依赖渲染:nonebot_plugin_htmlrender(可选,启用则渲染图片;未安装则退回文本输出) ## 安装与加载 1) 安装依赖(建议) ``` pip install nonebot-plugin-htmlrender ``` 2) 在 NoneBot 配置中加载插件 - 如果使用基于包名的自动加载:确保该插件在 Python 可导入路径中 - 或在 bot 启动入口添加: ```python nonebot.load_plugin("schedule_manager") ``` 注:实际导入名以你放置路径为准(本仓库结构为 nonebot/schedule_nonebot/src/plugins/schedule_manager)。 ## 指令与用法 - 帮助 - #sc - #sc help - sc help - 查询 - 本周课表 / 下周课表 / 第N周课表(如:第5周课表) - 明天课表 / 后天课表 / 下节课 - 总课表 - @某人 + 本周/下周/第N周/总课表(在群内查看他人课表) - 维护 - 添加课程:示例 - 添加课程 周三 第3-4节《高等数学》@东教A101 老师:张三 周次:1-16 单周 - 删除课程:示例 - 删除课程 周三 第3-4节《高等数学》 - 导入:示例 - 导入 WakeUp 数据 - 导入 小爱 数据 - 周次/学期 - 设置开学日 2025-09-01 - 设置本群当前周 5 - 设置我的当前周 7 - 提醒 - 绑定群提醒 - 设置提醒提前 10 分钟 - 开启课表提醒 / 关闭课表提醒 说明: - 实际语义解析以插件实现为准。上面是推荐口语化示例,亦可使用更严格的命令格式(如参数序列)。 ## 渲染与兼容性 - 渲染 - 若安装 nonebot_plugin_htmlrender,则课表/帮助优先以图片输出 - 模板位置:templates/lesson/*, templates/help/help.html - 渲染调用使用 viewport width=1080, height=10 以按内容高度截取,避免底部留白 - 模板已优化文本换行与块内布局,THeight 默认约 56(可按需微调) - 兼容性 - 保留“#sc / sc help”等入口 - 支持自然语言触发(如“本周课表/明天课表/第N周课表/总课表”) - 群内 @ 用户可查看对方课表(需对接原系统用户标识与课表数据) ## 数据与持久化 - 默认数据库:./data/schedule.db(sqlite+aiosqlite) - 采用惰性初始化,首次使用时自动创建数据目录与库文件 - 数据结构与原系统兼容(课程字段:名称/老师/地点/周次/单双周/时间段/星期等) ## 可配置项(建议) - 渲染相关: - 视口宽度(默认 1080)/ 最小高度(默认 10) - 课程块行高 THeight(默认 56) - 提醒相关: - 是否启用群提醒 - 提前分钟(默认 10) - 兼容策略: - 是否启用自然语言触发 - 是否启用 @ 他人查看 (注:上述配置可通过 env 或 NoneBot config 实现,具体以实现代码为准) ## 扩展点 - 模板可自定义:在 templates/lesson 下添加新样式并在渲染时切换 template_name - 数据导入器:扩展分析 WakeUp/小爱/其它系统的导出格式 - 权限与校验:对添加/删除/导入等操作进行权限控制 ## 回退与容错 - 未安装 nonebot_plugin_htmlrender:自动回退到文本输出 - 渲染异常:捕获错误并回退文本,保证可用性 - 数据未初始化:自动 init 并重试 ## 常见问题 - 图片底部空白较多? - 已采用按内容高度截取策略,通常不会出现。如遇到,请反馈具体样例 - 课程名过长被截断? - 模板已增强换行;仍有问题可调小字体/增大 THeight/减少块内边距 - @ 他人不生效? - 请确认消息确有 @ 且目标用户在本群;并确保原系统用户标识与数据对齐 ## 版本与迁移 - 从旧版 schedule 模块迁移: - 保留常用指令与别名,语义尽量兼容 - 若有自定义字段/规则,请按照本插件的数据结构适配或新增解析器