Skip to content

Latest commit

 

History

History
366 lines (277 loc) · 17.1 KB

README.md

File metadata and controls

366 lines (277 loc) · 17.1 KB

RBot

基于Go-cqhttpHoshinoBotYobotQQ群机器人

本机器人以Mirai-Bot为基础进行搭建,同时搭载了公主连结会战功能及日常娱乐功能

感谢Go-cqhttp项目,HoshinoBot项目,Yobot项目和众多bot插件 的开发者们以及编写Mirai-Bot部署指南@Soung2279

更新于2022年5月26日

由于jsDelivr被墙,国内用户无法正常打开Yobot网页端界面,已将相关资源路径替换为字节跳动公共库。

更新于2022年2月16日

新增源码魔改版Yobot

  • 每日群友出完3刀后清空他的全部boss预约
  • 每日群内出完90刀后自动清空群内全部boss预约
  • 指令清空可不指定特定boss而清除所有boss预约

启动魔改版:将yobot_data文件夹移至yobot文件夹内并启动yobot/yobot.bat

启动原版:将yobot_data文件夹移至主文件夹并启动yobot.exe

目录

功能介绍

详细功能列表

本机器人搭载了Yobot 公主连结会战基本功能以及以下模块:

MODULES_ON = {
    'anticoncurrency',  #反并发
    'aircon',           #模拟空调
    'asill',            #发病小作文
    #'authMS',           #授权管理
    'bangguess',        #猜邦邦(BanG Dream头像)
    'blacklist',        #黑名单
    'bilidynamicpush',  #b站动态推送
    'botchat',          #语言库
    'botmanage',        #功能管理
    #'clanrank',         #公会排名 已失效
    'chachengfen',      #查成分B站关注列表
    #'check',            #服务器状态查询
    'dice',             #骰子
    #'epixiv',           #P站搜图(未配置)
    'eqa',              #问答
    'explosion',        #爆裂魔法
    'flac',             #无损音乐
    'generator-image',  #表情包生成器
    'generator-text',   #文章生成器
    'good_morning',     #早安晚安
    'groupmaster',      #群管理
    'guess-icon',       #猜头像(pcr头像)
    'guess-text',       #猜角色(pcr描述)
    'hedao',            #合刀计算
    'HELP',             #指令列表帮助
    'hiumsentences',    #网抑云生成器
    'hourcall',         #整点时报
    #'laopo',            #群老婆
    'memberguess',      #猜群友(群员头像)
    'music',            #点歌
    'nowtime',          #报时
    'OneKillTwo',       #一穿二计算
    'pcractualguess',   #猜现实(pcr现实)
    'pcr_calendar',     #pcr日程
    'pcr-rank',         #rank表
    'pcrclanbattle',    #会战功能
    'pcrmiddaymusic',   #午间音乐
    'pcrwarn',          #pcr提醒(任务、买药、jjc)
    'pcrsealkiller',    #海豹杀手
    'petpet',           #头像表情包
    'priconne',         #实用功能集合
    #四格漫画推送,新闻推送,竞技场查询,模拟赛跑,模拟抽卡,贵族决斗
    'qrcode',           #二维码转链接
    'record',           #pcr角色语音
    'report-hoshino',   #会战报告-Hoshino版
    'report-yobot',     #会战报告-Yobot版
    'revgif',           #GIF倒放
    'russian',          #俄罗斯轮盘
    'search-image',     #搜图
    'setu',             #离线色图
    #'setu_renew',       #在线色图(未更新)
    'shaojo',           #今天是什么少女
    'traceanime',       #搜番
    'translate',        #翻译
    'voiceguess',       #猜语音
    'vtbguess',         #猜vtb/vup头像
    'weather',          #天气
    'whattoeat',        #今天吃什么
    'when2holiday',     #假期计算
    #'wordcloud',        #词云
}

Bot 的功能繁多,可根据自身需要控制开关,在群聊中发送 lssv 即可查看各功能模块的启用状态,使用以下命令进行控制:

启用 service-name
禁用 service-name

为防止单条消息过长,每项功能的指令说明分别显示。使用以下命令可以查看各项功能的说明:

service-name帮助

部署方法

本指南对Mirai-Bot部署指南中的失效部分进行更新,再次感谢@Soung2279提供的入门级教程!

准备工作

本指南面向无编程基础或刚入门的萌新,故推荐使用具有图形界面,对新手操作友好的Windows服务器来进行部署

  • 准备一台Windows系统的服务器(或个人本地电脑)

  • 准备一个作为bot的QQ小号 (推荐绑定手机并开启设备锁以避免被腾讯风控)

  • 登录服务器控制台,在防火墙/安全组等界面,放通80,8080,8090,9222端口

以腾讯云为例:
在 云服务器 - 安全组 - 安全组规则 里 添加 入站与出站规则

以阿里云为例:
在 云服务器 - 防火墙 里 添加规则

以本地个人电脑为例:
在 控制面板 - 系统和安全 - Windows Defender 防火墙 - 高级设置 里 添加 入站规则 与 出站规则
不建议运行在本地个人电脑上。

  • 在任意位置打开任意一个文件夹,点击左上方的查看-显示/隐藏页面中,勾选文件扩展名

部署步骤

  1. 安装下列软件/工具

  2. 在合适的文件目录(例如桌面)新建文件夹并双击打开,点击文件夹左上角的 文件 -> 打开Windows Powershell,输入以下命令

    git clone https://github.com/RMYHY/RBot.git

    或者直接下载本分支文件RBot-main.zip

  3. 在合适的文件目录(推荐C盘根目录)新建文件夹并重命名为Resources
    将收集到的 图片/语音资源 放入该文件夹,注意文件目录结构

    应当具有以下路径
    C:\Resources
    C:\Resources\img        总的图片存放位置
    C:\Resources\img\priconne       PCR实用小功能的图片位置
    C:\Resources\img\priconne\comic     PCR实用小功能-4格漫画
    C:\Resources\img\priconne\unit      PCR实用小功能-角色头像
    C:\Resources\img\priconne\quick     PCR实用小功能-rank表
    C:\Resources\img\setu       涩图
    C:\Resources\gacha      抽卡音效
    C:\Resources\MEGUMIN\explosion      爆裂魔法
    C:\Resources\pcrwarn        定时提醒语音
    ......
    

    推荐使用打包好的资源包,该资源包已包含RBot运行所需的所有图片/音频资源,下载后解压至C盘即可

    百度网盘:RBot资源包-Resources.zip(1.67GB) 提取码:4396

  4. 运行一次yobot.exe, 待弹出的窗口显示完毕后(显示CTRL + C to quit字样后),关闭窗口

  5. 修改以下几个文件的配置

    • yobot_data/yobot_config.json文件中,将文中这几行语句内容更改为下列示例给出的内容(其他行不用改动,若和示例相同则无须变动。)
    {
        "host": "0.0.0.0",
        "port": 9222,
        "public_address": "http://你的服务器公网IP:9222/",
    }
    • config.yml文件中,用需要作为bot的QQ号替换uin之后的数字 推荐不填密码使用扫码登录(使用密码登录会触发较难处理的滑块验证)
    account: # 账号相关
      uin: 3385546539 # QQ账号
      password: '' # 密码为空时使用扫码登录
    • HoshinoBot/hoshino/config/_bot_.py文件中,将SUPERUSERS后的数字改为你自己的QQ号,将NICKNAME后的名称更改为你自定义的名字,将RES_DIR后的路径改为你在第三步新建的Resources路径
    SUPERUSERS = [549883020,1061301935] # 填写超级用户的QQ号,可填多个用半角逗号","隔开
    NICKNAME = 'bot', 'hina', '氷川日菜' # 机器人的昵称。呼叫昵称等同于@bot,可用元组配置多个昵称
    RES_DIR = r'C:/Resources/' # 资源路径
  6. RBot\HoshinoBot目录下点击文件夹左上角的 文件 -> 打开Windows Powershell,输入以下命令

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

    或者直接运行双击安装依赖.bat,若此过程中有报错信息,请重新运行一次,若仍有报错,请复制报错信息到搜索引擎获得帮助

  7. (可选) 在以下文件中填入你自己的APIKEY

    • HoshinoBot/hoshino/config/priconne.py文件里添加竞技场作业网的API(目前已无法申请,建议需要此功能的群友手动登陆网站查询)
    class arena:
     AUTH_KEY = "你的作业网API"
    • HoshinoBot/hoshino/modules/search-image/picfinder.py文件里第15行添加SauceNAO识别图片的API(需要去申请,已内置了我自己的API,但过多使用可能造成请求额度不够)
     api_key="abcdefghijklmn123"#填写你自己的api_key

开始使用

运行 RBot 下的 yobot.exe , go-cqhttp.exeHoshinoBot 下的 双击运行HoshinoBot.bat

显示以下字样说明bot启动成功:

双击运行HoshinoBot.bat

Running on http://127.0.0.1:8090 (CTRL + C to quit)

yobot.exe

yobot[v3.6.12]便携版
初始化完成,启动服务...
Running on https://0.0.0.0:9222 (CTRL + C to quit)

go-cqhttp.exe

[INFO]: 登录成功 欢迎使用: QQ昵称
[INFO]: 开始加载好友列表...
[INFO]: 共加载 N 个好友.
[INFO]: 开始加载群列表...
[INFO]: 共加载 N 个群.
[INFO]: 收到服务器地址更新通知, 将在下一次重连时应用.
[INFO]: 信息数据库初始化完成.
[INFO]: 正在加载事件过滤器.
[INFO]: 资源初始化完成, 开始处理信息.
[INFO]: 开始尝试连接到反向WebSocket Universal服务器: ws://127.0.0.1:9222/ws/
[INFO]: 开始尝试连接到反向WebSocket Universal服务器: ws://127.0.0.1:8090/ws/
[INFO]: アトリは、高性能ですから!
[INFO]: 正在检查更新.
[INFO]: 检查更新完成. 当前已运行最新版本.

go-cqhttp.exe第一次运行需用手机登录作为bot的QQ号扫码验证,若使用密码登录遇到滑块验证码请参阅官方文档

HoshinoBot初始化过程中常见的报错为资源缺失,请确认第五步中修改的RES_DIR路径是否正确

若HoshinoBot初始化过程中出现类似报错信息: ERROR: Failed to import "xxx", error: No module named 'abc' ERROR: No module named 'abc' 说明 abc 依赖项未安装,请在任意文件夹点击文件夹左上角的 文件 -> 打开Windows Powershell,输入以下命令 pip install abc

在bot所在群聊中发送任意信息,若go-cqhttp.exe双击运行HoshinoBot.bat窗口有反应,说明bot的HoshinoBot部分正常运行中。此时请发送lssv来确认当前群启用的服务,也可以发送【使用指南】/【指令表】来查看bot的帮助文档。

在bot所在群聊中发送versionhelp,若bot在群聊中有反应,说明bot的Yobot部分正常运行中。此时可发送【help】来查看bot的会战文档,或私聊bot发送【登录】启用Yobot的Web面板。

更进一步

  • 若Bot 运行正常,可考虑开启更多模块以丰富bot的功能。

  • HoshinoBot/hoshino/config/_bot_.py 文件里,将需要开启的模块前面的"#井号"删除。

  • 若想给Bot 添加更多功能,可以自行收集插件放入 HoshinoBot/hoshino/modules 文件夹中。(请仔细阅读该插件的说明文档,某些插件的添加方式有所不同)

  • 若Bot 添加群过多,需要引入授权系统,请启用authMS插件。Bot 已内置此插件,请仔细阅读说明文档进行配置。

  • 可自定义的内容

    • modules/botchat/botchat.py:这是bot的轻量语言库,可自行添加语句和回复,源文件里已包含范例。不同bot的人格差异化也基于此体现。

    • modules/explosion/exo.py:这是爆裂魔法,可自行更改日调用上限,也可以自行魔改添加更多语音。

    • modules/generator-image/:这是表情包生成器,可在meme里自行添加更多表情包。

    • modules/HELP:这是Bot 的帮助文档,可自行更改文本内容。

    • hoshino/config/hourcall.py:这是整点时报的文本内容,可自行更改,也可自行仿照格式添加。

    • modules/pcrwarn:这是定时提醒,可自行更改提醒时间,提醒内容。

    • modules/priconne/gacha/:这是模拟抽卡,可在gacha.py中自行更改抽卡次数日上限,还可在config.json中自行更改卡池内容。

    • modules/setu/setu.py:这是涩图,可自行更改日调用上限。

    • modules/hiumsentences/:这是随机网抑云,可在nt_words.json中自行更改语录文本。

参考HoshinoBot(v2) 插件开发指南(社区版)

常见问题

  • 为什么我的Bot 发不出图片/语音?

    • 请检查资源路径RES_DIR是否设置正确,目录Resources下该图片/语音是否存在
  • 为什么我的Bot 没有反应?

    • 请查看窗口显示的日志。
    • 若日志显示正常,请查看在准备工作步骤中是否放通端口。
    • go-cqhttp.exe显示 “群消息发送失败,账号可能被风控”,请关闭go-cqhttp并删除RBot文件夹的device.jsonsession.token文件,再打开go-cqhttp重新登录 (推荐作为bot的QQ账号绑定手机并开启设备锁以避免被腾讯风控)
    • 若日志有报错信息,请复制报错信息到搜索引擎解决。
    • 若日志无反应,请在该窗口输入回车(按下Enter键),查看日志是否有反应。若日志仍无反应,请查看在部署步骤 - 5.修改以下几个文件的配置中的文件是否正确配置
    • 若端口已经放通,请尝试其它指令;若部分指令有回应,说明bot 正常运行中,只是部分消息被tx吞了。若所有指令都无回应,请重新运行双击安装依赖
    • 若所有方式都无法让Bot 做出反应,请尝试重新部署Bot。
  • Bot 的权限是怎么设定的?

    • A:基于HoshinoBot的功能,设定主人为最高权限priv.SUPERUSER,群主为仅次于主人的第二权限priv.OWNER,群管理为更次一等的权限priv.ADMIN,群员为最低权限priv.NORMAL。(黑/白名单不考虑在内) 主人可以在_bot_.py里设定多个
    • A:而基于Yobot的功能,需要在面板中单独设定群员公会战管理员成员,默认群员为成员公会战管理员可以设置多个,但主人只能设定一个
  • 以后的更新维护?

  • 还有什么注意事项?

    • 请勿滥用Bot。

鸣谢

骨干部分

HoshinoBothttps://github.com/Ice-Cirno/HoshinoBot 作者:@Ice-Cirno

Yobothttp://yobot.win/ 作者:@yuudi

go-cqhttphttps://github.com/Mrs4s/go-cqhttp 作者:@Mrs4s

Mirai-Bot-Setuphttps://github.com/Soung2279/Mirai-Bot-Setup 作者:@Soung2279

插件部分

资源部分

干炸里脊资源站: https://redive.estertion.win/

Pcrbot - pcrbot相关仓库: https://www.pcrbot.com/

本项目基于GNU通用公共授权3.0 开源