这是一个 mirai 平台的QQ机器人, 支持OneBot(使用Sora)和Mirai-Api-Http(使用Mirai-CSharp)双协议, 实现了搜图, 翻译, setu RSS订阅转发等功能
搜图和setu功能设计思路参考自 cq-picsearcher-bot
- 1. SauceNao、ascii2d、Iqdb、Iqdb3D、 trace.moe搜图
- 2. lolicon、Lolisuki、Yuban10703、yande、Konachan、Lolibooru setu
- 3.
群友 Quan 的 ELF图库 美图(大部分图失效,外加作者已经说不更新了,砍掉了) - 4. 有道、百度、腾讯、谷歌翻译
- 5. 随机复读, 连续复读, 镜像复读图片和倒带gif
- 6. 新人入群/退群/被踢提醒
- 7. RSS订阅转发
- 8. 下载Pixiv原图(通过pixiv.cat)
- 9. 合并转发的伪造消息
更多功能请移步: 插件仓库
- 带Windows图形界面, 没有开发基础也可以傻瓜式配置
- 多平台兼容, .Net6能装的平台都能运行(当然非Windows就没有图形界面了)
- 搜图功能可配置接入腾讯云鉴黄, 可以有效避免被内鬼炸号炸群, 尤其是Ascii2D乱开车的时候
- 搜图功能可配置自动下载原图发送
- 支持一句命令多张setu, 支持限制QQ号调用次数和频率, 支持定时撤回, 支持配置返回语等
- 支持配置以合并转发的方式发送消息,防止不可描述的图片炸号
- RSS转发功能有控件配置,可方便添加删除和设置翻译
- 可使用QQ消息配置机器人属性
视频部署教程: BV1Zv4y1w7zV (感谢群友Luminol倾情奉献)
如果懒得看视频,也可以看以下文字教程
- 首先确保你的系统是 Windows 10 1607 或更高版本/Windows 8.1/Windows7 Sp1 并安装了 KB3063858 ( x64 | x86 ) 和 KB2533623 补丁
(补丁是.net6依赖的,如果你不确定装了没有,可以直接做下面两个步骤,如果都能正常装上,那说明补丁已经装了) - 下载并安装 Microsoft Visual C++ 2015-2019 Redistributable ( x64 | x86 )
- 到 .Net6官网 找到.NET Desktop Runtime下载对应自己系统架构的 Installers 版本安装
二、安装机器人框架 (go-cqhttp)
- 到 go-cqhttp/Release 下载 go-cqhttp (注意选对系统)
- 双击运行 go-cqhttp.exe 点击"是", 创建启动脚本
- 双击运行 go-cqhttp.bat
- 选择 2 正向 Websocket 通信 并回车, 随后关闭 cmd 窗口
- 打开生成的 config.yml 文件, 修改以下内容:
uin: QQ号
password: QQ密码
post-format: array
access-token: 'Alex1911'
address: 127.0.0.1:33111 - 保存并关闭 config.yml , 随后重新双击运行 go-cqhttp.bat
- 到 Release 下载本项目的发行版本, 找最新的 win-x64.zip 下
- 解压到任意目录, 运行 GreenOnions.BotManagerWindow.exe
- 输入机器人QQ号和 config.yml 对应的 ip(127.0.0.1)、端口 (33111) 和 access-token, 点击连接到 cq-http
- 首先确保你的系统是 Windows 10 1607 或更高版本/Windows 8.1/Windows7 Sp1 并安装了 KB3063858 ( x64 | x86 ) 和 KB2533623 补丁
(补丁是.net6依赖的,如果你不确定装了没有,可以直接做下面两个步骤,如果都能正常装上,那说明补丁已经装了) - 下载并安装 Microsoft Visual C++ 2015-2019 Redistributable ( x64 | x86 )
- 到 .Net6官网 找到.NET Desktop Runtime下载对应自己系统架构的Installers版本安装
- 到 OpenJDK官网 下载 OpenJDK 尽量选择高版本的下
- 将OpenJDK解压到C:\Program Files\Java文件夹下, 呈C:\Program Files\Java\jdk-xx.x路径形式(x为版本号)
- 打开 算机属性-高级系统设置-高级-环境变量 在下方系统变量栏中新建一项 变量"JAVA_HOME" 值"C:\Program Files\Java\jdk-xx.x" (不包括引号,x为版本号)
- 编辑系统变量Path, 添加一项"%JAVA_HOME%\bin"
二、安装机器人框架 (mirai-console-loader)
- 到 mirai-console-loader/releases 下载MCL (尽量选择不带beta的最新版, .zip结尾的那个)
- 在解压的目录处打开cmd
- 通过MCL安装 mirai-api-http(进入 mirai-api-http 的仓库页面找到它“使用 Mirai Console Loader 安装mirai-api-http”下面的命令输到 cmd 里,因为它的命令有时候会改,所以就不直接列在这里)
- 在 cmd 上运行一次 mcl 以确保配置文件成功创建, 等它的工作停止后 (指可以在cmd里输入内容时) 按Ctrl+C退出
- 拷贝 mirai-api-http 底下的 setting.ym l模板到 MCL目录\config\net.mamoe.mirai-api-http\setting.yml 文件中
- 修改 setting.yml 文件的 http 和 ws 下的 host: 127.0.0.1 port: 33111 verifyKey: Alex1911
- 回到 MCL 窗口, 重新输入一次 mcl 再输入/login 机器人QQ号 密码 登录
- 到 Release 下载本项目的发行版本, 找最新的 win-x64.zip 下
- 解压到任意目录, 运行 GreenOnions.BotManagerWindow.exe
- 输入机器人QQ号和 setting.yml 对应的 ip(host)、端口 (port) 和 VerifyKey, 点击连接到 mirai-api-http
(点击查看)
- 输入 sudo apt install unzip #安装解压zip的库
- 输入 sudo apt install openjdk-17-jdk-headless #安装Java依赖
- 输入 sudo apt-get install -y dotnet-runtime-6.0 #安装 .Net 依赖
#其他发行版详见: 在 Linux 上安装.Net - 安装 mirai (这里的例子为 Mirai Console Loader)
4.1. 到 mcl/Release 里复制最新的zip包下载地址
4.2. 输入 wget 地址 #下载mcl 例如: wget https://github.com/iTXTech/mirai-console-loader/releases/download/v2.1.0/mcl-2.1.0.zip
4.3. 输入 unzip mcl-1.2.2.zip #解压(文件名按下载到的来写)
4.4. 输入 sudo chmod 777 mcl #设置权限 - 安装 mirai-api-http 通信插件
5.1. 输入 ./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin #(地址可能会随着更新改变, 以 mirai-api-http 中的说明为准)
5.2. 输入 ./mcl #首次启动 mirai 创建配置文件
5.3. 当配置完成后, 按Ctrl+C停止运行
5.5. 到 mirai-api-http 复制setting.yml模板
5.4. 输入 sudo vim config/net.mamoe.mirai-api-http/setting.yml #使用Vim(或其他工具)编辑配置文件
5.5. 粘贴复制的模板并修改 http 和 ws 下的 host: 127.0.0.1 port: 33111 verifyKey: Alex1911
5.6. 按Esc退出编辑模式并输入 :wq! 保存配置文件 - 登录机器人QQ:
6.1. 输入 ./mcl 启动 mirai
6.2. 输入 /login QQ号 密码 #登录机器人QQ - 下载并安装本项目
7.1. 到 GreenOnions/Release #复制对应自己系统的本项目下载链接
7.2. 输入 wget 地址 #下载本项目压缩包
7.3. 输入 unzip linux-x64.zip #解压本项目(文件名按下载到的来写)
7.4. 输入 cd linux-x64 #进入解压后的目录 - 启动本项目并连接到 mirai
8.5. 输入 dotnet GreenOnions.BotManagerConsole.dll #启动本项目
8.6. 按提示输入QQ号、IP、端口和 VerifyKey
所有命令均以"<机器人名称>命令+空格"开头, 尖括号中代表要替换的值(不含尖括号, 带有问号的代表可选参数), 修改集合类型属性时应以Json数组的形式,如:[1,2,3])
- --list #列出所有的属性功能分组名称
- --list <分组名> #列出该分组下的所有属性名称和中文别名
- --get <属性名/别名> #获取属性的值和描述
- --set <属性名/别名> <值> #修改改属性的值
- --description <属性名/别名> #获取改属性的描述信息, 如果是枚举还会列出允许设置的值
- --rss #列出所有的RSS订阅项
- --addrss Url="<订阅地址>" remark="<?备注名>" ForwardGroups="<?转发群1>" ForwardQQs="<?转发好友1>" Translate="<?是否翻译>" TranslateFromTo="<?是否指定翻译语言>" TranslateFrom="<?从什么语言翻译>" TranslateTo="<?翻译到什么语言>" AtAll="<?是否@所有人>" SendByForward="<?是否以合并转发方式发送>" FilterMode="<?过滤模式*2>" FilterKeyWords="<?过滤词>" Headers="<?请求头>*3" #添加一个RSS订阅项
- --removerss <备注名/Url> #移除一个RSS订阅项
*注意添加RSS的命令等号后的参数均要加双引号
*1应为Json数组的形式输入,如:"[1,2,3]"
*2过滤模式: 0=不过滤, 1=包含任一, 2=包含所有, 3=不包含
*3应为Json键值对的形式输入,如:"{"aa": "11","bb": "22"}"
至于为什么叫葱葱, 一是一开始是给某初音群用的, 叫这个名字可以打压某助手(屠龙者终成恶龙, 现在葱葱小助手2.0也是我写的了, 不信对它发/GreenOnions试试), 二是早期没自己开发的时候使用 cq-picsearcher-bot 的机器人叫竹竹, 就想找个类似的名字
1.E-Hentai关键词色图
2.适配 Konata.Core 平台(或许会通过KnifeHub)
1.把 System.Drawing 替换为其他更轻量的跨平台图形库, 取消Linux系统下对Mono的依赖
2.把内嵌浏览器 (CefSharp) 搬出到独立的仓库里, 改为插件式加载
3.添加一个网站管理端(有生之年一定)