XZZ/README.md
2021-07-09 20:53:34 +08:00

77 lines
No EOL
2.3 KiB
Markdown

# XZZ
小智障,一个拓展 go-cqhttp ,快速构建命令式 QQ 机器人的框架.
## 如何使用
> 阅读完以下内容后可以参考我的 blog -> [部署一个自己的智障机器人](https://blog.sakuya.love/archives/xzz/)
> 其中 go-cqhttp 配置文件部分格式可能有点过时,但是不影响理解🙈
### 安装配置
#### 0.自己安装配置好 go-cqhttp.
`XZZ` 需要的配置有
- 相对应的上报地址与 `go-cqhttp` api 地址
- 上报消息类型为 `array`
- 上报消息过滤为以下条件
```json
{
"message_type": "group",
"raw_message":{
".regex":"^\/"
},
"user_id":{
".neq": 80000000
}
}
```
#### 1.clone 本仓库, 填写 `config.py`
其中 `APIURL` 为 go-cqhttp 的 api 地址, `AUTHORIZATION` 为 go-cqhttp 的 `access_token`, `PORT` 和 go-cqhttp 反向 http post 设置的端口保持一致.
#### 2.安装依赖, 启动服务
```shell
pip install -r req.txt
python main.py
```
### 拓展功能
`worker` 文件夹中添加 python 模块.文件名即受该文件响应的命令.
如果要响应 `/ping` 命令的话, 文件名应为 `ping.py`
在该模块实现一个 `Ans` 类, 此类继承自 `zzcore`里的 `StdAns` 类.
在这个类中你可选的重写以下属性和方法:
`AllowGroup` , int 类型的 list, 在此 list 中的群组可以执行此命令.默认为 [], 全部允许.
`AllowUser` , int 类型的 list, 在此 list 中的QQ号可以执行此命令.默认为 [], 全部允许.
`AllowRole` , string 类型的 list, 在此 list 中的角色可以执行此命令.默认为 [], 全部允许, 可选值为 owner、admin、member , 对应 群主、管理员、群员 三种角色.
`GroupNotAllow`、`UserNotAllow`、`RoleNotAllow` 三个字符串, 分别为当用户因为以上三个原因被拒绝使用本命令时的回复, 自己去看默认值吧..
`GETMSG()` 方法, 该方法应当返回一个字符串, 在此方法中你可以借助以下变量:
`self.uid `发起命令的用户的 QQ , int 类型
`self.gid` 发起命令的群组的群号, int 类型
`self.role` 发起命令的用户的角色,可能值 'owner'、'admin'、'member'
`self.parms` 命令详情, string 类型的 list. 看例子
如果用户发送了 /ping xxx 12
那么 self.parms 为 ['ping', 'xxx', '12']
self.raw_msg 详见 example.json