SICNUBOT是专为四川师范大学设计用于审核发布消息用的QQ机器人。
- Web Server(IIS / Apache / nginx / ...)
- PHP (>=7.0)
- MySQL / MariaDB
- 酷Q
- coolq-http-api (>=4.6.0)
导入mysql/qqbot.sql
到你的数据库,建议为应用单独分配一个用户。
coolq-http-api需要配置post_url
,你可以修改使用目录下的config.json.simple
配置文件。暂不支持非本地来源。
按照文件中的注释修改config.php
。
机器人收到发布群的群成员的私聊消息后会自动回复(自动回复的内容在config.php
中设置,留空则不发送自动回复),同时私聊消息会转发到审核群。在审核群通过审核后会逐一(间隔1秒)发送到发布群。发布群可以有多个,只要是加入了的群理论上都可以发送统一的消息,但是不建议超过30个,超过30个可能导致酷Q日志记录错误。
[消息序号]已审核的消息
[编号][QQ号码]待审核消息
编号由机器人自动指定,一般为递增整数。
QQ号码为发送者的QQ号码。
[编号][审核人QQ号码]带信内容
确认审核通过直接发送消息编号即可。
如果希望不通过,可以发送 编号+感叹号 ,注意要使用英文感叹号,不要使用中文感叹号。审核不通过会自动回复一段消息给原来的发布者,可以在config.php
中设置,留空则不回复。
已经审核过的消息可以再次审核,每次审核都会触发操作,比如重新发送或者重新带信,建议慎用。
比如收到如下消息
[89][10032]出售一本《Python-cookbook》,联系17610126666。
若通过审核则回复
89
如果不通过,则发送
89!
如果需要带信给发布消息的人,直接发送 编号 + #
+ 带信内容。
比如要带信给编号为89的人,发送信息可以如下
89#请提供联系方式
对方会收到对应的带信内容,私聊方式。
如果需要修改消息内容来发布,发送 编号 + 等于号(=
) + 修改后的内容。
比如下面这条命令
89=出售一本《Python-Cookbook》,联系17677776666
那么机器人将把把下面这条消息同步发送到各个群
[消息序号]出售一本《Python-Cookbook》,联系17677776666
但是这样可能导致不符合原发布者的意向,实际不建议这么操作。
如果需要对消息加分隔符,发送 编号 + @
。
比如这条消息
[89][10032]出售一本《Python-Cookbook》,联系17677776666
发送
89%
程序在转发的时候会发送
出.售.一.本《Python-Cookbook》,联.系17677776666
如果希望消息编号重新从1开始,可以清空数据库中的sending_log
表和messages
表并把这两个表的auto_increment
设为1。你也可以使用下面的MySQL代码(假设数据库为qqbot)。
TRUNCATE `sending_log`;
ALTER TABLE `sending_log` auto_increment = 1;
TRUNCATE `messages`;
ALTER TABLE `messages` auto_increment = 1;
如果希望在一定周期内自动执行这个过程,可以创建一个存储过程,然后添加到事件中。
日志位于数据库的post_messages
和err_log
两个表,前者记录上报字符串,后者记录错误信息。
错误程度说明
- 严重,不应该出现的情况,一般为设置出现问题或者软件已失效。
- 警告,使用过程由于误操作造成的问题。
状态码 | 说明 | 程度 |
---|---|---|
101 | HMAC校验失败 | 严重 |
102 | 上报的QQ号码与配置文件不匹配 | 严重 |
103 | 上报服务器的IP不是本机 | 严重 |
104 | 上报请求方式不是POST | 严重 |
105 | 不是群聊或私聊消息 | 警告 |
106 | 数据库连接失败 | 严重 |
107 | 程序错误 | 严重 |
201 | 审核命令不规范 | 警告 |
202 | 审核命令不正确,没有这个编号 | 警告 |
203 | 消息已经被审核过 | 警告 |
-
messages
表->记录接受到的需要审核发布的消息code
消息编号,递增序列sender
发此条消息的QQ号time
入库时间,一般等于发消息的时间status
消息审核状态- 0->未审核
- 1->审核通过
- 2->审核不通过
- 3->带信,审核不通过
- 4->修改发布
message
消息内容reviewer
审核人,未审核时为空
-
err_log
表->异常日志 -
post_messages
表->所有上报内容 -
sending_log
表->已审核消息的发送日志,主要用于产生消息编号