Giter Site home page Giter Site logo

rbot's Introduction

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 开源

rbot's People

Contributors

hongyiy avatar lhxnois avatar rmyhy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

rbot's Issues

提出几个贵族决斗新道具。。

顺风车:支持环节使用,当使用目标(决斗者)获得胜利时,可以获得与决斗胜利者同等声望和金币,失败时扣除与失败者同等声望和金币的50% 使用方法:使用顺风车支持1号(不与支持金币冲突)

墙头草:支持环节使用,无论哪一边胜利,都可以获得与决斗胜利者同等声望和金币的50% 使用方法:使用墙头草(不与支持金币冲突)

双倍卡:决斗发起者使用,胜利或失败遭受的都是双倍奖励/惩罚 使用:贵族决斗@10000 双倍(与强制不冲突)

交换卡:交换女友(?好怪耶)使用方法:用水猫剑与@10000交换xcw

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.