Alex1911-Jiang / GreenOnions

一个Mirai的QQ机器人, 实现了搜图, RSS订阅转发, 根据PixivID下载原图, 翻译, setu等功能
156 stars 20 forks source link
cqhttp cqhttp-mirai mirai-bot onebot qq-bot qqbot qqrobot

GreenOnions

关于本项目

这是一个 mirai 平台的QQ机器人, 支持OneBot(使用Sora)和Mirai-Api-Http(使用Mirai-CSharp)双协议, 实现了搜图, 翻译, setu RSS订阅转发等功能

搜图和setu功能设计思路参考自 cq-picsearcher-bot

效果预览

到mirai社区查看

QQ群

功能介绍

项目优势:

  1. 带Windows图形界面, 没有开发基础也可以傻瓜式配置
  2. 多平台兼容, .Net6能装的平台都能运行(当然非Windows就没有图形界面了)
  3. 搜图功能可配置接入腾讯云鉴黄, 可以有效避免被内鬼炸号炸群, 尤其是Ascii2D乱开车的时候
  4. 搜图功能可配置自动下载原图发送
  5. 支持一句命令多张setu, 支持限制QQ号调用次数和频率, 支持定时撤回, 支持配置返回语等
  6. 支持配置以合并转发的方式发送消息,防止不可描述的图片炸号
  7. RSS转发功能有控件配置,可方便添加删除和设置翻译
  8. 可使用QQ消息配置机器人属性

视频部署教程: BV1Zv4y1w7zV (感谢群友Luminol倾情奉献)

如果懒得看视频,也可以看以下文字教程

Windows食用方法(傻瓜版):

首先, 这里有两个平台, 先选择一个顺眼的, 别两个都弄

OneBot 平台:

一、环境配置:

  1. 首先确保你的系统是 Windows 10 1607 或更高版本/Windows 8.1/Windows7 Sp1 并安装了 KB3063858 ( x64 | x86 ) 和 KB2533623 补丁
    (补丁是.net6依赖的,如果你不确定装了没有,可以直接做下面两个步骤,如果都能正常装上,那说明补丁已经装了)
  2. 下载并安装 Microsoft Visual C++ 2015-2019 Redistributable ( x64 | x86 )
  3. .Net6官网 找到.NET Desktop Runtime下载对应自己系统架构的 Installers 版本安装

二、安装机器人框架 (go-cqhttp)

  1. go-cqhttp/Release 下载 go-cqhttp (注意选对系统)
  2. 双击运行 go-cqhttp.exe 点击"是", 创建启动脚本
  3. 双击运行 go-cqhttp.bat
  4. 选择 2 正向 Websocket 通信 并回车, 随后关闭 cmd 窗口
  5. 打开生成的 config.yml 文件, 修改以下内容:
    uin: QQ号
    password: QQ密码
    post-format: array
    access-token: 'Alex1911'
    address: 127.0.0.1:33111
  6. 保存并关闭 config.yml , 随后重新双击运行 go-cqhttp.bat

三、安装本项目

  1. Release 下载本项目的发行版本, 找最新的 win-x64.zip 下
  2. 解压到任意目录, 运行 GreenOnions.BotManagerWindow.exe
  3. 输入机器人QQ号和 config.yml 对应的 ip(127.0.0.1)、端口 (33111) 和 access-token, 点击连接到 cq-http

大功告成

Mirai-Api-Http 平台:

一、环境配置:

  1. 首先确保你的系统是 Windows 10 1607 或更高版本/Windows 8.1/Windows7 Sp1 并安装了 KB3063858 ( x64 | x86 ) 和 KB2533623 补丁
    (补丁是.net6依赖的,如果你不确定装了没有,可以直接做下面两个步骤,如果都能正常装上,那说明补丁已经装了)
  2. 下载并安装 Microsoft Visual C++ 2015-2019 Redistributable ( x64 | x86 )
  3. .Net6官网 找到.NET Desktop Runtime下载对应自己系统架构的Installers版本安装
  4. OpenJDK官网 下载 OpenJDK 尽量选择高版本的下
  5. 将OpenJDK解压到C:\Program Files\Java文件夹下, 呈C:\Program Files\Java\jdk-xx.x路径形式(x为版本号)
  6. 打开 算机属性-高级系统设置-高级-环境变量 在下方系统变量栏中新建一项 变量"JAVA_HOME" 值"C:\Program Files\Java\jdk-xx.x" (不包括引号,x为版本号)
  7. 编辑系统变量Path, 添加一项"%JAVA_HOME%\bin"

二、安装机器人框架 (mirai-console-loader)

  1. mirai-console-loader/releases 下载MCL (尽量选择不带beta的最新版, .zip结尾的那个)
  2. 在解压的目录处打开cmd
  3. 通过MCL安装 mirai-api-http(进入 mirai-api-http 的仓库页面找到它“使用 Mirai Console Loader 安装mirai-api-http”下面的命令输到 cmd 里,因为它的命令有时候会改,所以就不直接列在这里)
  4. 在 cmd 上运行一次 mcl 以确保配置文件成功创建, 等它的工作停止后 (指可以在cmd里输入内容时) 按Ctrl+C退出
  5. 拷贝 mirai-api-http 底下的 setting.ym l模板到 MCL目录\config\net.mamoe.mirai-api-http\setting.yml 文件中
  6. 修改 setting.yml 文件的 http 和 ws 下的 host: 127.0.0.1 port: 33111 verifyKey: Alex1911
  7. 回到 MCL 窗口, 重新输入一次 mcl 再输入/login 机器人QQ号 密码 登录

三、安装本项目

  1. Release 下载本项目的发行版本, 找最新的 win-x64.zip 下
  2. 解压到任意目录, 运行 GreenOnions.BotManagerWindow.exe
  3. 输入机器人QQ号和 setting.yml 对应的 ip(host)、端口 (port) 和 VerifyKey, 点击连接到 mirai-api-http

大功告成

Linux食用方法(仅提供mirai-api-http教程)

(点击查看) ### Ubuntu为例: 1. 输入 sudo apt install unzip #安装解压zip的库
2. 输入 sudo apt install openjdk-17-jdk-headless #安装Java依赖
3. 输入 sudo apt-get install -y dotnet-runtime-6.0 #安装 .Net 依赖
#其他发行版详见: [在 Linux 上安装.Net](https://docs.microsoft.com/zh-cn/dotnet/core/install/)
4. 安装 [mirai](https://github.com/mamoe/mirai) (这里的例子为 [Mirai Console Loader](https://github.com/iTXTech/mirai-console-loader))
4.1. 到 [mcl/Release](https://github.com/iTXTech/mirai-console-loader/releases) 里复制最新的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 #设置权限
5. 安装 [mirai-api-http](https://github.com/project-mirai/mirai-api-http) 通信插件
5.1. 输入 ./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin #(地址可能会随着更新改变, 以 [mirai-api-http](https://github.com/project-mirai/mirai-api-http) 中的说明为准)
5.2. 输入 ./mcl #首次启动 [mirai](https://github.com/mamoe/mirai) 创建配置文件
5.3. 当配置完成后, 按Ctrl+C停止运行
5.5. 到 [mirai-api-http](https://github.com/project-mirai/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! 保存配置文件
6. 登录机器人QQ:
6.1. 输入 ./mcl 启动 [mirai](https://github.com/mamoe/mirai)
6.2. 输入 /login QQ号 密码 #登录机器人QQ
7. 下载并安装本项目
7.1. 到 [GreenOnions/Release](https://github.com/Alex1911-Jiang/GreenOnions/releases) #复制对应自己系统的本项目下载链接
7.2. 输入 wget 地址 #下载本项目压缩包
7.3. 输入 unzip linux-x64.zip #解压本项目(文件名按下载到的来写)
7.4. 输入 cd linux-x64 #进入解压后的目录
8. 启动本项目并连接到 [mirai](https://github.com/mamoe/mirai)
8.5. 输入 dotnet GreenOnions.BotManagerConsole.dll #启动本项目
8.6. 按提示输入QQ号、IP、端口和 VerifyKey
#### 大功告成

命令说明:

所有命令均以"<机器人名称>命令+空格"开头, 尖括号中代表要替换的值(不含尖括号, 带有问号的代表可选参数), 修改集合类型属性时应以Json数组的形式,如:[1,2,3])

  1.  --list #列出所有的属性功能分组名称
  2.  --list <分组名> #列出该分组下的所有属性名称和中文别名
  3.  --get <属性名/别名> #获取属性的值和描述
  4.  --set <属性名/别名> <值> #修改改属性的值
  5.  --description <属性名/别名> #获取改属性的描述信息, 如果是枚举还会列出允许设置的值
  6.  --rss #列出所有的RSS订阅项
  7.  --addrss Url="<订阅地址>" remark="<?备注名>" ForwardGroups="<?转发群1>" ForwardQQs="<?转发好友1>" Translate="<?是否翻译>" TranslateFromTo="<?是否指定翻译语言>" TranslateFrom="<?从什么语言翻译>" TranslateTo="<?翻译到什么语言>" AtAll="?是否@所有人" SendByForward="<?是否以合并转发方式发送>" FilterMode="<?过滤模式2>" FilterKeyWords="<?过滤词>" Headers="<?请求头>3" #添加一个RSS订阅项
  8.  --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 的机器人叫竹竹, 就想找个类似的名字

短期计划(TODO):

1.E-Hentai关键词色图
2.适配 Konata.Core 平台(或许会通过KnifeHub

长期计划(GUDO):

1.把 System.Drawing 替换为其他更轻量的跨平台图形库, 取消Linux系统下对Mono的依赖
2.把内嵌浏览器 (CefSharp) 搬出到独立的仓库里, 改为插件式加载
3.添加一个网站管理端(有生之年一定)