那些年写过的企微机器人
1. 机器人
1.1. tip-tool
功能有
- 发起MR(已废弃)
- 远程发布(已废弃)
- 查看007性能数据
- 定时提醒
- 查询分支
- 查询单元测试/自动化测试/CodeCC报告
- 查看项目列表
- 查看当前会话id
- 查看后台协议地址
- 查看某次提交信息
- 创建赛事子活动
- 对比仓库两次commit的差异
1.2. 开源治理报表
爬虫抓取小组内的开源治理报表,每天早上9点半发送。
1.3. 七彩石助手
将七彩石配置同步到腾讯云,七彩石配置发生变化时会通知到群里
1.4. TAM日报
用API获取多个项目的TAM性能数据、首页数据,处理并制成图片发送到群里。
1.5. 深圳天气预警播报
爬虫获取当前正在生效的天气预警信息,一旦发生变化就把预警信息发送到群里。
制作背景是有一段时间有暴雨预警,如果持续红色,就居家办公,所以需要知道当前预警级别是不是红色。
1.6. 007日报
007上性能数据日报
2. 数据处理总结
前端常做的两件事:处理数据、展示。
对于数据处理,比如上面的日报数据,总结了一下:
总体流程:
- 获取昨天数据
- 获取前天数据
- 处理两个数据
- 拉平前天数据
- 获取相较前天的比例
- 获取最大最小index
- 获取表格headers
其中4、5、6、7都可以提取公共方法,因为第3步数据处理后,会统一成一样的格式。
处理数据的具体步骤:
- 根据某key过滤(一般是主键)
- 根据某key排序
- 对每一项处理
- 生成 key: { name: name,value: value }形式
- 其中会格式化value
- 再次过滤内部key
- 添加其他内部key
- 排序内部key
- 再次处理某key(之所以不提前处理,是因为某些操作会造成key重复,比如截断)
处理数据示例代码:
3. 企业微信消息类型
MsgType
类型有:
text
image
attachment
mixed
图文混排消息
当 MsgType
为 event
时,EventType
事件类型可能是:
add_to_chat
表示被添加进会话delete_from_chat
表示被移出会话enter_chat
表示用户进入机器人单聊
ChatType
类型有:
single
group
顺便贴下 ctx
打印内容:
ctx.query
:
4. Koa
借助 Koa 的中间件机制,可以很方便的将不同类型的处理方法隔离开来,抽取公共的逻辑。
下面是一个例子:
下面是处理 add_to_chat
事件的中间件函数:
回调内容举例:
参考:https://developer.work.weixin.qq.com/document/path/91881