View Code? Open in Web Editor
NEW
重庆交通大学QQ课表机器人(基于mirai协议库)
License: GNU Affero General Public License v3.0
CMake 7.49%
Makefile 15.43%
C++ 77.08%
jw-bot's Introduction
Here's cyanray
. ![GitHub followers](https://camo.githubusercontent.com/468a5b1119535146fe59cff725186bd2615a03d689ae1413179afb34851eade7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f6c6c6f776572732f6379616e7261793f7374796c653d736f6369616c)
- 🔭 Currently studying Naval Architecture and Ocean Engineering.
- 🌱 Enjoy building things from scratch.
- 📧 Email:[email protected]
- ⚡ Blog:uint128.com
jw-bot's People
jw-bot's Issues
上一次重构调整了数据库结构,"更新所有用户课表" 指令没有对新的数据库结构进行适配!
不过短时间内不需要执行该指令,可以放低优先级,缓一缓。
rank 功能需要获取所有人的成绩信息。频繁地请求获取成绩信息,是坏爬虫!因此决定移除 rank 功能。
目前只是暂停了该功能的使用,该功能的代码还未被移除,将要在未来移除这些代码。
目前只有各个学年的绩点,虽然这个平均绩点可以在教务系统查到,但是教务系统期末的时候经常抽风,所以还是加入这个功能。
问题描述
现在的空教室功能,只能查询 “全天”、“上午”、“下午”、”晚上“ 四个时间段的空教室。
但是有的时候,需要查询 ”上午“+”下午“ 或者 ”下午“+”晚上“ 的空教室。
使用方式:
空教室 二教 上午 下午 三楼
以上指令将会返回 上午 和 下午 都为空闲状态的教室。
机器人会缓存课表数据,减少对教务系统的网络请求次数。(这个系统访问速度太慢了,不缓存很影响体验)
但是有时候老师会调课,导致课表出现改动。
这种情况只需要重新使用”绑定学号“指令,再获取一次课表就可以了。
但是通过”绑定学号“来解决问题的方式不够符合大家的直觉。
因此需要一个 ”刷新课表“ 的指令,来更新课表。
这个指令可以有多种别名:更新课表、刷新课表
疑似触发TX风控
考虑解决方法:
- 提高发送间隔时长 (同时需要提前发送早安课表的触发时间)
- 打乱发送顺序(可能是连续发送了相同内容的课表)
在周六查询明日课表时会返回下周一的课表。
应该是明日课表指令有个条件写错了。
当前的查天气功能一次能发送十多条数据(今日天气功能可达50条消息)刷屏严重。
改进方法
1. 渲染图片
使用图片来显示天气信息,将数十条文字信息压缩为一张图片,直观。
渲染方式可以使用内嵌浏览器渲染(推荐,这样可以直接使用网页前端的图表库,只用编写少量代码)或者 skia 等图形库。
2. 提取有用信息
不显示天气的详细数据,只显示对穿衣、出行有帮助的数据:最高气温和最低气温(以及它们出现的时间)、降雨预告或者停雨预告(什么时候会下多大的雨,如果当前正在下雨,那么什么时候雨会停止)
这需要寻找新的 API,因为当前API获取到的数据难以支持该改进。
彩云天气(https://dashboard.caiyunapp.com/user/sign_in/)有这些数据, 可以申请为免费用户, 每天可调用1000次 API。
当前措施
暂时关闭查天气功能。#40
if(hour == appconfig["MorningTriggerHour"].get<int>())
{ ...
方便修改
早安课表要给上千人发送课表,到周末时大家都没有课,会给所有人都发一句 “你今天没有课了”。
因为发的太多,容易触发风控(消息被屏蔽)甚至冻结封号。
这里提出一个解决方案:
- 让发送的消息内容多样化,避免触发风控
现在是默认订阅早安课表而默认不订阅教务新闻
打算修改为都不默认订阅
让有需要的同学自行开启,也避免不了解的同学受到打扰
比较简单的一个功能,重点是排版要美观。
可以采用图片的形式。
长期缺失日志记录,改错全靠直觉。
引入日志库,有助于调试错误。
更新 mirai-cpp 至最新版本以消除编译警告
当前的查天气功能一次能发送十多条数据(今日天气功能可达50条消息)刷屏严重。
等查天气功能完善之后再开启。
Pr #15 支持了楼层条件
类似 #7 楼层条件也可以同时设置多个
我还不知道你的学号! 回复 "绑定学号+空格+学号" 启动本功能
应该为
我还不知道你的学号! 回复 "绑定学号+空格+学号" 启动本功能