CCUT课程表小助手(重构中)
开源项目地址
使用方法
- 网页查询地址:kcb.brucec.cn
- 添加机器人为好友,QQ号 2895727556 (二维码加好友) ,验证信息随意,会自动同意好友请求。
- 添加为好友后根据提示进行绑定(QQ发送
/bindkcb 学号 密码
)即可接收推送或进行查询。 - 使用
/mykcb
指令可以获取完整课程表的网页链接(永久有效)。
系统结构 (V2.0)
- 点击图片可放大
系统结构 (V1.0)
- 点击图片可放大
功能演示
点击展开
功能需求
- 每日课程表推送功能
- 查询指定日期课程表功能(一定程度上支持自然语言查询)
- 查询总课程表功能
- 教务系统验证码识别在本地完成
方案选择
- 旧版内容,未更新
- 消息推送
- 单日课程表查询
- 一般来说,查询单日课程表的需求较强,目前支持使用自然语言在QQ进行查询,以文本消息形式进行返回(图片消息容易被腾讯风控且文本课表的信息量已经足够)。包含课程节次、课程名称、教师名称、上课地点信息。
- 总课程表查询
- 目标是能够展示教务系统查询课程表界面内勾选放大后的课程表。
- 查询任意用户完整课程表:通过网页端提供一个简单的查询页面。
- 查询已绑定用户完整课表:使用QQ推送网页链接,仅支持在网页端查看课表。没有使用QQ推送图片实现是因为此功能使用率较低,编写生成课程表图片的代码也比较麻烦,而且使用网页端方便与第二点功能相结合。
- QQ机器人框架使用 Mirai ,是一个异步的QQ机器人框架,可使用 Kotlin/Java 编写插件。
- 爬虫使用 Python 的 requests 库。
- 验证码识别部分期望是找到预训练好的基于CNN神经网络的端到端模型,节省开发时间。
- 很幸运找到了完美符合需求的 MuggleOCR 模块(清华Pypi镜像),是基于CaptchaTrainer项目训练的。
- 使用纯CPU部署CNN5网络:在能够使用 AVX 和 AVX2 指令集的机器上(铂金 8255C 4T / I7-8650U 4C8T),识别耗时约 20ms;不支持 AVX 的低端赛扬机器上,识别耗时 100ms。
- 数据库使用 sqlite3 ,轻量好用。