XCWBot: 一个基于酷Q和HoshinoBot魔改的公主连接QQ群机器人。
XCWBot 的功能开发以服务 公主连结☆Re:Dive 玩家为核心,主要功能有:
- 转蛋模拟:单抽、十连、抽一井
- 竞技场解法查询:支持按服务器过滤,支持反馈点赞点踩
- 竞技场结算提醒
- 公会战管理:详细说明见此文档
- Rank推荐表搬运
- 常用网址速查
- 官方推特转发
- 官方四格推送
- 角色别称转换
- 切噜语编解码:切噜~♪
- 竞技场余矿查询
由于bot的功能会快速迭代开发,使用方式这里不进行具体的说明,请向bot发送"help"或移步此文件查看详细。会战管理功能的详细说明,请点击这里
XCWBot 还具有以下通用功能:
- 入群欢迎&退群提醒
- 复读
- 掷骰子
- 精致睡眠套餐
- 机器翻译
- 反馈发送:反馈内容将由bot私聊发送给维护组
如果您有新的想法,欢迎联系我!即便您不会编程,您也可以在内容更新上帮到我们!
XCWBot 的功能繁多,各群可根据自己的需要进行开关控制,群管理发送 lssv
即可查看功能模块的启用状态,使用以下命令进行控制:
启用 service-name
禁用 service-name
本bot功能繁多,部分功能需要静态图片资源和带有认证的api key,恕不能公开。本指南将首先带领您搭建具有模拟抽卡(纯文字版)、会战管理功能的XCWBot。其他功能需额外配置,请参考本章更进一步的对应小节。
-
安装下面的软件/工具
-
安装 酷Q 及 CQHTTP 插件
初次部署建议先在本地尝试,酷Q Air版即可,待部署成功后再尝试服务器搭建与酷Q Pro版
-
运行 酷Q,启用 CQHTTP插件,修改CQHTTP插件的配置文件,下面的配置可供参考:
{ "use_http": false, "use_ws": false, "use_ws_reverse": true, "ws_reverse_use_universal_client": true, "ws_reverse_url": "ws://127.0.0.1:8888/ws/", "serve_data_files": false }
关于CQHTTP插件的配置说明,详见 CQHTTP 文档 -> 配置
-
打开一个合适的文件夹,点击资源管理器左上角的
文件 -> 打开Windows Powershell
-
输入以下命令安装依赖
git clone https://github.com/Ice-Cirno/XCWBot.git cd XCWBot 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
-
回到资源管理器,复制
config.example.py
至同目录下,重命名为config.py
,右键使用Notepad++打开,按照其中的注释说明进行编辑。如果您不清楚某项设置的作用,请保持默认
-
回到powershell,启动机器人
py -3.8 run.py
私聊机器人发送
在?
,若机器人有回复,恭喜您!您已经成功搭建起XCWBot了。之后您可以尝试在群内发送!帮助
以查看会战管理的相关说明,发送help
查看其他一般功能的相关说明,发送pcr速查
查看常用网址等。注意,此时您的机器人功能还不完全,部分功能可能无法正常工作。若希望您的机器人可以发送图片,或使用其他进阶功能,请参考本章更进一步的对应小节。
由于 酷Q 仅支持 Windows 环境,我们需要使用 docker 镜像来部署 酷Q 及 CQHTTP 插件。但别担心,相信我,这比 Windows 下部署更简单!您可以在这个文档找到详细的说明。下面将带领您进行部署:
-
安装 docker:参考https://docs.docker.com/engine/install/debian/
-
部署 docker:下面一条命令仅供参考,请根据实际情况修改参数;详细说明可见 CQHTTP 文档 -> Docker
sudo docker run -d --name=hoshino \ -v $(pwd)/coolq:/home/user/coolq \ -p 9000:9000 \ -e VNC_PASSWD=MAXchar8 \ -e COOLQ_ACCOUNT=10000 \ -e COOLQ_URL=https://dlsec.cqp.me/cqp-full \ -e CQHTTP_SERVE_DATA_FILES=no \ -e CQHTTP_USE_HTTP=no \ -e CQHTTP_USE_WS_REVERSE=yes \ -e CQHTTP_WS_REVERSE_URL=ws://172.17.0.1:8888/ws/ \ -e CQHTTP_WS_REVERSE_USE_UNIVERSAL_CLIENT=yes \ richardchien/cqhttp:latest
使用这行命令
ip addr show docker0 | grep -Po 'inet \K[\d.]+'
查看你的docker桥ip,替换CQHTTP_WS_REVERSE_URL
中的链接然后访问
http://<你的IP>:9000/
进入 noVNC(默认密码MAXchar8
),登录 酷Q注:如果你希望先使用酷Q Air进行尝试,请将COOLQ_URL设置为
https://dlsec.cqp.me/cqa-xiaoi
;之后可以用CQP.exe替换CQA.exe以升级,或删除容器重新创建。 -
回到我们熟悉的命令行,安装 Python 3.8
# Ubuntu or Debian sudo apt install python3.8
若您的包管理工具(如
yum
)尚不支持python3.8
,你可以尝试从源码安装。Google will help you greatly : )
-
克隆本仓库并安装依赖包
git clone https://github.com/woshiguabi/XCWBot.git cd XCWBot python3.8 -m pip install -r requirements.txt
-
编辑配置文件
cp config.example.py config.py nano config.py
配置文件内有相应注释,请根据您的实际配置填写,XCWBot仅支持反向ws通信
您也可以使用
vim
编辑器,若您从未使用过,我推荐您使用nano
: ) -
运行bot
python3.8 run.py
私聊机器人发送
在?
,若机器人有回复,恭喜您!您已经成功搭建起XCWBot了。之后您可以尝试在群内发送!帮助
以查看会战管理的相关说明,发送help
查看其他一般功能的相关说明,发送pcr速查
查看常用网址等。注意,此时您的机器人功能还不完全,部分功能可能无法正常工作。若希望您的机器人可以发送图片,或使用其他进阶功能,请参考本章更进一步的对应小节。
现在,机器人已经可以使用会战管理
、模拟抽卡(纯文字版)
等基本功能了。但还无法使用竞技场查询
、番剧订阅
、推特转发
等功能。这是因为,这些功能需要对应的静态图片资源以及相应的api key。相应资源获取有难有易,您可以根据自己的需要去获取。
下面将会分别介绍资源与api key的获取方法:
发送图片的条件:
- 酷Q Pro版
- 将
config.py
中的IS_CQPRO
设为True
- 静态图片资源
您可能希望看到更为精致的图片版结果,若希望机器人能够发送图片,需要您购买酷Q Pro版,静态图片资源包括:
- 公主连接角色头像(来自 干炸里脊资源站 的拆包)
- 公主连接官方四格漫画
- 公主连接每月rank推荐表
- 表情包杂图
- setu库
竞技场查询功能的数据来自 公主连结Re: Dive Fan Club - 硬核的竞技场数据分析站 ,查询需要授权key。您可以向pcrdfans的作者索要。(注:由于最近机器人搭建者较多,pcrdfans的作者最近常被打扰,我们不建议您因本项目而去联系他,推荐您前往网站pcrdfans.com进行查询)
若您已有授权key,创建文件hoshino/modules/priconne/arena/config.json
编写以下内容:
{"AUTH_KEY": "your_auth_key"}
推特转发功能需要推特开发者账号,具体申请方法请自行Google。注:现在推特官方大概率拒绝来自**大陆的新申请,自备海外手机号及大学邮箱可能会帮到您。
若您已有推特开发者账号,创建文件hoshino/modules/twitter/config.json
编写以下内容:
{
"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/