Skip to content

Latest commit

 

History

History
353 lines (253 loc) · 17 KB

README.md

File metadata and controls

353 lines (253 loc) · 17 KB

Mirai-Bot-Setup


因本人不再使用 Mirai 作为机器人框架部分,本指南长期未更新,涉及的部分插件,基础框架等已失效(2021/8/20),原指南仅做参考用。

如有近期搭建bot的需求,请阅读以下参考:

Windows下 go-cqhttp版的部署指南 - Soung2279 :发布时间2021-7-14

Linux 下部署一个公主连结 qq 群聊机器人 - 地河君_official :发布时间2020-12-02

使用 Docker 部署 HoshinoBot 与 yobot - yuudi :发布时间2020-11-08

(点击查看)原Mirai-Bot-Setup指南

基于 MiraiHoshinoBotYobotWindows环境 QQ机器人搭建指南

本指南并非官方文档,写此指南的目的是方便Windows环境下的 编程初学者 或 无搭建经验的小白 快速上手搭建属于自己的 bot

感谢Mirai项目 ,HoshinoBot项目,Yobot项目,cqhttp-mirai 插件和 众多bot插件 的开发者们!

写在前面

按本指南引导,个人搭建者 简略知晓 编程知识即可快速搭建 bot,但仍建议您了解有关 Python, Java, Kotlin等的基础知识。

善用Baidu, Bing, Google等搜索引擎能帮助您更快上手

不要在不知晓自己搭建的bot各项参数,指令处理方式等进阶内容的情况下将bot用于出租

简介

  • Mirai: 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库

  • HoshinoBot: 基于 nonebot 框架,开源、无公害、非转基因的QQ机器人。

  • Yobot:公主连结Re:dive公会战设计的辅助机器人,能够帮助公会战管理者提供自动化管理服务。

  • CQHTTP-MIRAI: 为Mirai移植的CQHTTP插件以兼容基于CQHTTP API开发的应用

本指南将引导您将 HoshinoBotYobot 利用 cqhttp-mirai 组合到 Mirai 上并同时运行。

功能介绍

根据本指南部署完成的 bot 应具有以下功能:

  • 基于腾讯AI闲聊的智能闲聊 aichat
  • 模拟群空调运行 aircon
  • 公会人员公开黑名单 blacklist
  • Bot轻量语言库 botchat
  • 公主连结日程表查阅推送 calendar
  • 实时查询公会排名 clanrank
  • 模拟掷骰子 dice
  • 爆裂魔法 explosion
  • 无损音乐资源搜索 flac
  • 文章/表情包 生成器 generator
  • 猜角色小游戏 guess
  • 整点时报 hourcall
  • 定时提醒 pcrwarn
  • 公会战管理 clanbattle
  • PCR实用小功能 - 包含官方四格漫画推送(日文)与查阅公主连结R官方新闻推送竞技场作业查询简易模拟赛🐎模拟抽卡Rank表快捷查询 priconne
  • 你问我答 QA
  • 公会战报告图生成 report
  • 模拟俄罗斯转盘 russian
  • p站搜 pixiv
  • steam商店查询 steam
  • 群老婆 laopo
  • 群内点歌 music
  • 日语词典 japanese
  • 天气查询 weather
  • 随机涩图 setu
  • 识别图片来源 search
  • Visual YouTuber运势签 vortune
  • 短篇网抑云语录 wcloud

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

启用 service-name
禁用 service-name

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

service-name帮助

准备工作

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

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

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

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

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

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

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

  • (可选)使用 IE 或自行安装其他浏览器,用Bot 的QQ号登录网页QQ安全中心并保持登录至少一周。(即使不执行此步骤,Bot 仍然可正常搭建运行,但部分群聊消息可能会被tx吞,且异地登录有冻结风险)

部署步骤

Windows 部署

  1. 安装下列软件/工具

    部分网页国内网络可能访问缓慢,这里提供已整合好的压缩文件
    百度网盘:安装资源整合包 //截止2021-8-20日,该网盘资源经检查仍可用 提取码:4396
    以上软件/工具可在整合包里的backups/software里找到

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

    git clone https://github.com/Soung2279/Mirai-Bot-Setup.git

    在合适的文件目录(推荐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        定时提醒语音
    ......
    

    若自行整理资源困难,这里提供已整合好的压缩文件
    百度网盘:资源包 提取码:2200

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

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

    • yobot_data/yobot_config.json文件中,将文中这几行语句内容更改为下列示例给出的内容(其他行不用改动,若和示例相同则无须变动。)
    {
        "host": "0.0.0.0",
        "port": 9222,
        "public_address": "http://你的服务器公网IP:9222/",
    }
    • config.txt文件中,将需要作为bot的QQ号和密码输入在第二个 login 之后,用 空格 分隔
    ----------
    login 你的botQQ号 QQ密码
    • plugins/setting.yml文件中,将第一行的数字换成你的bot的QQ号
    "你的bot的QQ号":
    • HoshinoBot/hoshino/config/_bot_.py文件中,将SUPERUSERS后的数字改为你自己的QQ号,将NICKNAME后的名称更改为你自定义的名字,将RES_DIR后的路径改为你在第二步新建的Resources路径
    SUPERUSERS = [123456789]
    NICKNAME = '妈', 'xcw'
    RES_DIR = r'C:/Resources/'
    • HoshinoBot/hoshino/modules/vortun/main.py文件里,将absPath后的路径改为此文件当前的路径(注意用\\双斜线分层)
    absPath = 'C:\\Mirai-Bot-Setup\\HoshinoBot\\hoshino\\modules\\vortune'
  5. (可选) 在以下文件中填入你自己的APIKEY

    • HoshinoBot/hoshino/modules/aichat/aichat.py文件里添加腾讯智能闲聊的API (已内置我的API,但建议去申请一个)
    ################
     # 请修改
     app_id = '123456789'
     app_key = 'abcdefghijk'
     ################
    class arena:
     AUTH_KEY = "你的作业网API"
    • HoshinoBot/hoshino/modules/search-image/picfinder.py文件里第15行添加SauceNAO识别图片的API(需要去申请,已内置了我自己的API,但过多使用可能造成请求额度不够)
     api_key="abcdefghijklmn123"#填写你自己的api_key
    • HoshinoBot/hoshino/modules/pixiv/config.yml文件中填入你自己的pixiv账号
    pixiv:
    username: '132456789'
    password: '132456789'
  6. 运行双击安装依赖.bat,若此过程中有报错信息,请重新运行一次,若仍有报错,请复制报错信息到搜索引擎获得帮助

开始使用

运行 Mirai-Bot-Setup 下的 yobot.exe , 双击运行Mirai.batHoshinoBot 下的 双击运行HoshinoBot.bat 。显示以下字样说明bot启动成功:

双击运行HoshinoBot.bat

Running on http://127.0.0.1:8090 (CTRL + C to quit)
[2020-09-12 21:19:17,706] Running on 127.0.0.1:8090 over http (CTRL + C to quit)

yobot.exe

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

双击运行Mirai.bat

�[0m 21:21:55 [INFO] [BOT 你的botQQ号] Logging in...�[39;49m
�[0m 21:21:55 [INFO] [NETWORK] Connected to server msfwifi.3g.qq.com:8080�[39;49m
......
�[0m 21:21:56 [INFO] [NETWORK] 开始加载好友信息�[39;49m
�[0m 21:21:56 [INFO] [NETWORK] 开始加载群组列表与群成员列表�[39;49m
......
�[0m 21:21:57 [INFO] [BOT 你的botQQ号] Login successful�[39;49m
�[0m 21:21:57 [INFO] [Command] 你的botQQlogin successes�[39;49m

若此过程中有报错信息,请复制报错信息到搜索引擎
此过程中常见的报错为资源缺失,请确认第四步中修改的RES_DIR路径是否正确

在bot所在群聊中发送任意信息,若双击运行Mirai.bat双击运行HoshinoBot.bat窗口有反应,说明bot的HoshinoBot部分正常运行中。此时可发送【使用指南】/【指令表】来查看bot的帮助文档。

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

更进一步

  • 若 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/wcloud/:这是随机网抑云,可在 nt_words.json 中自行更改语录文本。

常见问题

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

A:请检查资源路径 RES_DIR 是否设置正确,目录 Resources 下该图片/语音是否存在

Q:为什么我的Bot 没有反应?

A:请查看窗口显示的日志。

  • 若日志显示正常,请查看在准备工作步骤中是否放通端口。
  • 若日志有报错信息,请复制报错信息到搜索引擎解决。
  • 若日志无反应,请在该窗口输入回车(按下Enter键),查看日志是否有反应。若日志仍无反应,请查看在部署步骤 - 4.修改以下几个文件的配置中的文件是否正确配置
  • 若端口已经放通,请尝试其它指令;若部分指令有回应,说明bot 正常运行中,只是部分消息被tx吞了。若所有指令都无回应,请重新运行双击安装依赖
  • 若所有方式都无法让Bot 做出反应,请尝试重新部署Bot。

Q:Bot 的权限是怎么设定的?

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

Q:有什么其他的Bug吗?

A:使用cqhttp-mirai-0.2.3-embedded-all插件发送的语音文件仅支持.amr/mp3,且 .mp3 在移动端QQ将错误显示时长,在PC端无法播放

Q:以后的更新维护?

A:您可以自行访问Mirai项目 ,HoshinoBot项目,Yobot项目,cqhttp-mirai 插件和 众多bot插件 来进行更新。

Q:还有什么注意事项?

A:请勿滥用Bot。

最后

本人非专业程序员,如本篇指南有错误,请及时告知我。 本篇指南搭载的 Bot 模块 均根据本人喜好进行取舍,世面上还有很多非常优秀的 Bot 插件,请自行探寻。

鸣谢

骨干部分

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

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

Miraihttps://github.com/mamoe/mirai 作者:@Mamoe Technologies

cqhttp-miraihttps://github.com/yyuueexxiinngg/cqhttp-mirai 作者:@yyuueexxiinngg

插件部分

资源部分

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

公主连结Re: Dive Fan Club - 硬核的竞技场数据分析站: https://pcrdfans.com/

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

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