shinxBot2
一个基于go-cqhttp的机器人。
做着玩的
是我原来项目shinxBot的C++重构版,
它能做什么?
-
恶臭数字论证器,来源:itorr
-
来点二次元。来源:dmoe
-
首字母缩写识别,来源:itorr
-
在群或私聊中生成一个假的转发信息。
-
来点色图:随机色卡
-
赛博养猫(与 gpt3.5 共同创作)
-
cat image for http code。来源httpcats
-
图片OCR (qq自带的那个)
-
openai的
gpt-3.5-turbo
API支持 -
群友聊天截图保存功能(美图)
-
龙王提醒
-
群成员变动提醒
-
人云亦云(复读)
关于源文件
./functions 所有功能的代码
./inc 功能头文件
./interfaces 接口,所有功能继承这个类
./utils 一些工具
如何运行这个机器人
需要几个支持库:libcurl + openssl-dev / jsoncpp / CImg / base64 / libzip
libcurl: sudo apt-get install libcurl4-openssl-dev
openssl: sudo apt-get install openssl-dev
jsoncpp: sudo apt-get install libjsoncpp-dev
CImg: already included
and sudo apt-get install libjpeg-dev libpng-dev
base64: already included
libzip: sudo apt-get install libzip-dev
maybe it will work
这些库怎么装?问chatGPT。
需要先配置并启动go-cqhttp。打开 "反向HTTP POST地址",并设置你自己的接收端口。(一般在go-cqhttp目录下的config.yaml)
linux: 运行 build.sh ,自动执行cmake和make编译,使用 start.sh 无限循环运行
windows:手动通过CMake编译,需要更改TCP连接的头文件(和可能的代码细微差别,包括不限于sleep,file:///)本人没有使用Windows编译过(
如何添加新功能
functions和events可以互换。
functions传参仅为消息相关,events传入事件的JSON数据
在收到聊天消息的时候调用 functions 里的方法,在其他提示性消息的时候用 events 的方法
-
./functions 下新建目录并把代码放入,写一个类继承
./interfaces/processable.h
中的类并实现virtual方法(可以参考我其他功能的写法,一个简单示例是functions/getJapaneseImage/Anime_Img.cpp
) -
继承的 virtual 方法里只要 check() 成功了就会执行 process() 方法
-
./functions/functions.h 中加入你的.h
-
main.cpp中main函数里加入
functions.push_back(new your_name());
开发提示
- 如果使用clang,根目录下
.clang-format
为你提供了自动格式化设置 - 在
dev_tools
下提供了一些开发辅助工具:
inspector
: 监听cq_bot
发送的requests。需要在dev
路径下运行,该脚本通过相对路径寻找到../conf/port.txt
从而读取端口信息。sender.sh
: 向cq_bot
发送信息。格式为./sender.sh <msg>
,中填写需要发送的信息,带有空格的信息必须用引号包围(否则会被解析为多个参数)。需要在dev
路径下运行,该脚本通过相对路径寻找到../conf/port.txt
从而读取端口信息。