在 msg_process 中,消息通过判断各属性是否匹配来调用功能
消息处理
- 先记录日志,并调用消息记录器
- 消息处理时,先根据 msg.event 将消息分为发送和处理逻辑
- 处理时,对 command.yaml 中的指令(指令页面配置)逐一检索条件,所有条件均为列表,即消息某属性在列表中即通过该条件
- 先获取用户名,记录日志
- 平台,LR5921/LR232/WECHAT/BILI
- 种类,见消息种类
- 群聊/私聊
- 群聊时不考虑个人身份,只考虑群
- 私聊需要判断身份
- 目前的身份包括:社员(数据库)、内阁(存在于用户配置组中)、用户配置组中的身份组、测试员(数据库)
- 群聊判断群 id 是否在配置的群组里(群组:群A-[id1,id2],两个分别是 LR232 和 LR5921 获取的群 id)
- 私聊判断身份是否存在于配置的身份组中
- 状态,见状态说明
- 包含/匹配
- 根据包含/匹配,对于指令列表中的匹配词一一检索
- 详见消息比较
- 匹配后调用对应的函数
- 发送时,调用 msg_send 函数
- 先获取用户名,记录日志
- 消息分类详见消息发送格式
- 其中的函数与发送格式中的一一对应
- 多平台的函数参数统一,单平台的函数在最下方
- 所有字典属性均不用 get,防止函数传入空值出错,错误直接从 msg_send 中传出