将XZZ机器人使用go实现一遍
liyp
f160de4320
更新了README,加入了使用Go语言重新实现sihuan/XZZ机器人项目的介绍。由于原项目使用的go-cqhttp不再维护,本项目转向使用napcat实现。同时,更新了部署服务的步骤和配置文件示例,方便用户进行部署和使用。 |
||
---|---|---|
config | ||
test | ||
tools | ||
utils | ||
workers | ||
.gitignore | ||
config example.toml | ||
go.mod | ||
go.sum | ||
main.go | ||
README.md |
使用Go语言重新实现 sihuan/XZZ 机器人项目
本项目是一个使用Go语言重新实现 sihuan/XZZ 机器人项目。原使用go-cqhttp的机器人项目,由于go-cqhttp不再维护,有众多bug,无法使用,所以更换使用 napcat 实现。
当前项目的功能都在workers
目录下。同时所有接收到的消息都保存在一个sqllite数据库中,文件名为data.db
保存在项目根目录。
部署服务:
-
先使用docker部署napcat,然后修改配置文件,将机器人的token替换为napcat的token,然后运行项目即可。 部署napcat可参考下面的docker-compose.yml文件:
version: '3' services: napcat: image: mlikiowa/napcat-docker:latest container_name: napcat environment: - ACCOUNT=<QQ号> - HTTP_ENABLE=true - HTTP_POST_ENABLE=true - HTTP_URLS=["http://172.17.0.1:5580/"] ports: - "5700:3000" - "6099:6099" volumes: - ~/dockerfile/napcat/config:/usr/src/app/napcat/config - ~/dockerfile/napcat/QQ:/root/.config/QQ
然后启动docker-compose.yml文件即可。
-
运行本项目前需要先修改配置文件,将本项目目录下的
config example.toml
重命名为config.toml
,然后修改配置文件,默认的配置端口跟上面的 docker-compose.yml文件一致,不需要修改。如果需要使用ai功能,需要修改配置文件里的MODEL
,OPENAI_API_KEY
和OPENAI_BaseURL
这三个字段。 -
启动项目:安装go环境,然后运行
go run main.go
即可。你也可以使用go build main/go -o go-bot
编译为可执行文件,
使用说明:
- 默认的配置端口是5580,如果需要修改,请修改配置文件里的
APIURL
字段。默认获取以!
开头的消息,如果需要修改,请修改配置文件里的Prefix
字段。
编写插件:
所有的插件放在workers
目录下,并且都要有下面的代码:
package workers
func init() {
RegisterWorkerFactory("ping", func(parms []string, uid, gid, role, mid, rawMsg string) Worker {
return &Ping{
StdAns: NewStdAns(parms, uid, gid, role, mid, rawMsg),
}
})
}
type Ping struct {
*StdAns
}
上面的例子是实现里ping
这个插件的注册,在群组中以!ping
指令激活。
同时所有的功能需要写在实现的GetMsg()
方法里,如!ping
命令的:
func (a *Ping) GetMsg() string {
return "Pong!"
}