Home

Awesome

HoshinoBot

License Python Version Nonebot Version

试用/赞助群 开发交流群 防炸群备胎 Telegram

A QQ-bot for Princess Connect Re:Dive based on Nonebot

<details> <summary>开发历史</summary> </details>

简介

HoshinoBot: 基于 nonebot 的开源Q群bot框架。

更新公告

功能介绍

HoshinoBot 的功能开发以服务 公主连结☆Re:Dive 玩家为核心。

<details> <summary>主要功能</summary>

由于bot的功能会快速迭代开发,使用方式这里不进行具体的说明,请向bot发送"help"或移步此文件查看详细。会战管理功能的详细说明,请点击这里

</details> <details> <summary>通用功能</summary> </details>

此外,HoshinoBot 为 艦隊これくしょん 玩家开发了以下功能

<details> <summary>点击展开</summary>

艦これ相关功能由于个人精力实在有限,无法进行更多功能(如海图攻略)的开发/维护。

如果您有新的想法,欢迎联系我!即便您不会编程,您也可以在内容更新上帮到我们!

</details>

功能模块控制

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

启用 service-name
禁用 service-name

如何开始使用

QQ群试用/赞助群提供了我们部署的bot,提供Hoshino的原生服务。您可以在这里试用bot功能、赞助开发者,赞助者可邀请bot加入自己的群使用。

如果您具备基本的linux与python能力,并拥有一台服务器(轻量级即可),您可以参阅部署指南自行部署。

开源协议及免责声明

本项目遵守GPL-3.0协议开源,请在协议允许的条件及范围内使用本项目。本项目的开发者不会强制向您索要任何费用,同时也不会提供任何质保,一切因本项目引起的法律、利益纠纷由与本项目的开发者无关。

最终解释权归HoshinoBot开发组所有。

部署指南

HoshinoBot基于OneBot协议通信,使用go-cqhttpCQHTTP Mirai作为无头QQ客户端。

<details> <summary>(点击查看社区提供的部署指南)</summary> > CentOS已停止更新,推荐使用Ubuntu 20.04或Debian。 </details>

本bot功能繁多,部分功能需要静态图片资源和带有认证的api key,恕不能公开。本指南将首先带领您搭建具有模拟抽卡(纯文字版)会战管理v2功能的HoshinoBot。其他功能需额外配置,请参考本章更进一步的对应小节。适用于日台服的会战管理v3及v4版本暂未开源,如有需要请前往试用/赞助群

部署步骤

Windows 部署

  1. 安装下面的软件/工具

  2. 打开一个合适的文件夹,点击资源管理器左上角的 文件 -> 打开Windows Powershell

  3. 输入以下命令克隆本仓库并安装依赖

    git clone https://github.com/Ice9Coffee/HoshinoBot.git
    cd HoshinoBot
    py -3.8 -m pip install -r requirements.txt
    

    若此处有报错信息,请务必解决,将错误信息复制到百度搜索一般即可找到解决办法。

    若安装python依赖库时下载速度缓慢,可以尝试使用py -3.8 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

  4. 回到资源管理器,进入hoshino文件夹,将config_example文件夹复制一份,重命名为config,然后右键使用Notepad++打开其中的__bot__.py,按照其中的注释说明进行编辑。

    如果您不清楚某项设置的作用,请保持默认。

  5. 回到powershell,输入以下命令,启动 HoshinoBot

    py -3.8 run.py
    

    若能看到日志INFO: Running on 127.0.0.1:8080,说明HoshinoBot启动成功。您可以忽略启动时的WARNING信息。如果出现ERROR,说明部分功能可能加载失败。

    至此,HoshinoBot的“大脑”已部署成功。接下来我们需要部署无头qq客户端,作为HoshinoBot的“口”和“耳”,收发消息。

  6. 下载 go-cqhttp 至合适的文件夹

    您需要根据自己的机器架构选择版本,Windows一般为x86/64架构,通常选择go-cqhttp_windows_386.exe

  7. 在同文件夹内创建一个文本文件,重命名为config.yml,将以下内容写入文件:

    account:
      uin: 你的机器人QQ号
      password: '' # 密码为空时使用扫码登录
      encrypt: false  # 是否开启密码加密
    heartbeat:
      interval: 5
    default-middlewares: &default
      access-token: ''
    database:
      leveldb:
        enable: true
    servers:
      - ws-reverse:
          universal: ws://127.0.0.1:8080/ws/
          reconnect-interval: 5000
          middlewares:
            <<: *default
    

    你需要在资源管理器上方菜单 -> 查看 -> 显示/隐藏 中勾选"文件扩展名",以修改文件的后缀名。

    将其中的“你的机器人QQ号”替换为实际的QQ号,通常为8~11位纯数字。密码留空使用扫码登录,你也可以将密码写入配置文件,此时请妥善保存您的配置文件,不要泄露给其他人。

    关于go-cqhttp的配置,你可以在这里找到更多说明。

  8. 启动go-cqhttp,按照提示登录。

    登陆成功后,私聊机器人发送在?,若机器人有回复,恭喜您,您已经成功搭建起HoshinoBot了!

    之后您可以尝试在群内发送!帮助以查看会战管理的相关说明,发送help查看其他一般功能的相关说明,发送pcr速查查看常用网址等。

    注意,此时您的机器人功能还不完全,部分功能可能无法正常工作。若希望您的机器人可以发送图片,或使用其他进阶功能,请参考本章更进一步的对应小节。

Linux 部署

CentOS已停止更新,推荐使用Ubuntu 20.04或Debian。

  1. 安装 Python 3.8

    # Ubuntu or Debian
    sudo apt install python3.8
    
  2. 克隆本仓库并安装依赖包

    git clone https://github.com/Ice9Coffee/HoshinoBot.git
    cd HoshinoBot
    python3.8 -m pip install -r requirements.txt
    
  3. 编辑配置文件

    mv hoshino/config_example hoshino/config
    nano hoshino/config/__bot__.py
    

    配置文件内有相应注释,请根据您的实际配置填写,HoshinoBot仅支持反向ws通信

    您也可以使用vim编辑器,若您从未使用过,我推荐您使用 nano : )

  4. 运行HoshinoBot

    python3.8 run.py
    

    你需要在tmux或screen中运行。

  5. 下载 go-cqhttp 至合适的文件夹

    您需要根据自己的机器架构选择版本,一般x86/64的Linux选择go-cqhttp_linux_386.tar.gz

  6. 解压后,在go-cqhttp的同目录下创建配置文件config.yml,将以下内容写入文件:

    account:
      uin: 你的机器人QQ号
      password: '' # 密码为空时使用扫码登录
      encrypt: false  # 是否开启密码加密
    heartbeat:
      interval: 5
    default-middlewares: &default
      access-token: ''
    database:
      leveldb:
        enable: true
    servers:
      - ws-reverse:
          universal: ws://127.0.0.1:8080/ws/
          reconnect-interval: 5000
          middlewares:
            <<: *default
    

    将其中的“你的机器人QQ号”替换为实际的QQ号,通常为8~11位纯数字。密码留空使用扫码登录,你也可以将密码写入配置文件,此时请妥善保存您的配置文件,不要泄露给其他人。

    关于go-cqhttp的配置,你可以在这里找到更多说明。

  7. 运行go-cqhttp,按照提示登录。

    登陆成功后,私聊机器人发送在?,若机器人有回复,恭喜您!您已经成功搭建起HoshinoBot了。之后您可以尝试在群内发送!帮助以查看会战管理的相关说明,发送help查看其他一般功能的相关说明,发送pcr速查查看常用网址等。

    注意,此时您的机器人功能还不完全,部分功能可能无法正常工作。若希望您的机器人可以发送图片,或使用其他进阶功能,请参考本章更进一步的对应小节。

更进一步

现在,机器人已经可以使用会战管理模拟抽卡(纯文字版)等基本功能了。但还无法使用竞技场查询番剧订阅推特转发等功能。这是因为,这些功能需要对应的静态图片资源以及相应的api key。相应资源获取有难有易,您可以根据自己的需要去获取。

下面将会分别介绍资源与api key的获取方法:

静态图片资源

您可能希望看到更为精致的图片版结果,若希望机器人能够发送图片,需要准备静态图片资源,其中包括:

等资源。自行收集可能较为困难,所以我们准备了一个较为精简的资源包以及下载脚本,可以满足公主连接相关功能的日常使用。如果需要,请加入QQ群 Hoshino的后花园 761100284,下载群文件中的res.zip

pcrdfans授权key

竞技场查询功能的数据来自 公主连结Re: Dive Fan Club - 硬核的竞技场数据分析站 ,查询需要授权key。您可以向pcrdfans的作者索要。(注:由于最近机器人搭建者较多,pcrdfans的作者最近常被打扰,我们不建议您因本项目而去联系他,推荐您前往网站pcrdfans.com进行查询)

若您已有授权key,在文件hoshino/config/priconne.py中填写您的key:

class arena:
    AUTH_KEY = "your_key"

蜜柑番剧 RSS Token

请先在hoshino/config/__bot__.pyMODULES_ON中取消mikan的注释
本功能默认关闭,在群内发送 "启用 bangumi" 即可开启

番剧订阅数据来自蜜柑计划 - Mikan Project,您可以注册一个账号,添加订阅的番剧,之后点击Mikan首页的RSS订阅,复制类似于下面的url地址:

https://mikanani.me/RSS/MyBangumi?token=abcdfegABCFEFG%2b123%3d%3d

保留其中的token参数,在文件hoshino/config/mikan.py中填写您的token:

MIKAN_TOKEN = "abcdfegABCFEFG+123=="

注意:token中可能含有url转义,您需要将%2b替换为+,将%2f替换为/,将%3d替换为=

时报文本

请先在hoshino/config/__bot__.pyMODULES_ON中取消hourcall的注释
本功能默认关闭,在群内发送 "启用 hourcall" 即可开启

报时功能使用/魔改了艦これ中各个艦娘的报时语音,您可以在舰娘百科艦これ 攻略 Wiki找到相应的文本/翻译,当然您也可以自行编写台词。在此,我们向原台词作者田中谦介先生和他杰出的游戏作品表达诚挚的感谢!

若您已获取时报文本,在文件hoshino/config/hourcall.py中填写您的文本。

您可以编入多组报时文本,机器人会按HOUR_CALLS_ON中定义的顺序循环日替。

推特转发

推特转发功能需要推特开发者账号,具体申请方法请自行Google。注:现在推特官方大概率拒绝来自中国大陆的新申请,自备海外手机号及大学邮箱可能会帮到您。

若您已有推特开发者账号,在文件hoshino/config/twitter.py中填写您的key:

consumer_key = "your_consumer_key",
consumer_secret = "your_consumer_secret",
access_token_key = "your_access_token_key",
access_token_secret = "your_access_token_secret"

友情链接

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

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

yobot: https://yobot.win/