PCR_Ro_Bot概览
PCR_Ro_Bot 是一个基于,酷Q,Nonebot,CQHTTP,和OpenPyXL制作的QQ机器人,用来解决公主连结行会QQ群内在工会战期间的自主出刀,出刀数据上传(伤害,分数,队伍阵容),击杀状况,挂树申请与救树申请等请求与信息的处理,并且可以将全部数据自动导出为Excel文件,便于信息的查阅和分析。
本仓库包括以下内容:
- 一份完整的PCR_Ro_BOT代码。
- PCR_Ro_Bot的安装及使用教程。
- PCR_Ro_Bot指令的使用介绍。
PCR_Ro_Bot 是为了让只有基础的编程经验的人,也可以轻松搭建出一个具有高功能性的PCR工会战排刀机器人而产生的。只需要简单几步操作,就可以获得一个操作便捷,且可以自主完成数据导出与信息分析的QQ机器人。该项目的本意,是为了编写出一个可以记录尽量多的工会战信息,又可以替代人力对信息进行汇总和处理的QQ机器人。这个项目因此开始。
该项目目前不具有很高的自定义程度,如果您对于机器人有更多自己的想法,请联系作者或在贴吧留言,并等待项目更新。该项目将会持续更新。
该项目使用Python,并依赖酷Q,NoneBot,CQHTTP插件,和OpenPyXL。在使用PCR_Ro_Bot之前,请先保证你在本地安装了他们。
作者使用的Python版本为3.8,在运行过程中并无问题。
注意:在使用NoneBot机器人之前,请不要忘记将机器人账号添加到您要管理的QQ群中。
出于某种原因,目前酷Q无法在官网上下载,请自行搜索酷Q下载安装。
作者使用的为酷Q轻量版,在使用过程中并无问题。
NoneBot是一个基于酷Q的Python异步机器人框架,是本仓库机器人的主体框架。
在安装好Python之后,请打开CMD窗口并直接输入:
pip install nonebot
CQHTTP是一个酷Q的插件,构成了链接酷Q和NoneBot的桥梁,使得NoneBot可以接收到QQ的信息,并进行处理。
进入到CQHTPP的仓库Release栏下,下载最新的 cpk 文件放到 酷Q 的 app 文件夹,然后启用即可。
OpenPyXL是一个解决Python读写Excel文件的开源库。
打开CMD窗口并直接输入:
pip install openpyxl
进入到酷Q程序内该目录下 \data\app\io.github.richardchien.coolqhttpapi\config,如果您之前已经运行过一次机器人,则该目录下会已经存在一个以您的QQ机器人的QQ号命名的json文件,如果没有,您也可以新建一个。请打开它,并写入以下配置:
{
"$schema": "https://cqhttp.cc/config-schema.json",
"host": "0.0.0.0",
"port": 5700,
"use_http": true,
"ws_host": "0.0.0.0",
"ws_port": 6700,
"use_ws": false,
"ws_reverse_url": "ws://127.0.0.1:8080/ws/",
"ws_reverse_api_url": "",
"ws_reverse_event_url": "",
"ws_reverse_reconnect_interval": 3000,
"ws_reverse_reconnect_on_code_1000": true,
"use_ws_reverse": true,
"post_url": "",
"access_token": "",
"secret": "",
"post_message_format": "string",
"serve_data_files": false,
"update_source": "global",
"update_channel": "stable",
"auto_check_update": false,
"auto_perform_update": false,
"show_log_console": true,
"log_level": "info",
"enable_heartbeat": true
}
这是作者使用的配置,该配置与本仓库机器人代码的配置相同。保存之后即可正常运行PCR_Ro_Bot。
接下来请打开根目录下的 Settings.json文件,配置START_YEAR,START_MONTH,START_DAY项为你启动机器人的日期。
注意:本机器人依赖该初始日期的设置来保证表格时间记录准确,例如:设置起始日期为2020/5/27,则机器人在2020/5/28运行的话,在Excel表格中对应记录数据的位置就会被判定为Day2。也就是说在正式的行会战期间,请配置时间为行会战开始时间。PS:Day的计算,是从起始日期早5点开始计算,判定是否经过了24小时,来决定是否增加天数。
首先请完整下载本仓库内容,然后用VSCode或任意编辑器打开项目文件夹并运行Bot.py文件,或者直接在项目根目录下执行:
python bot.py
正常情况下,您将观察到以下信息:
则PCR_Ro_Bot至此已经成功运行。
-
atk_apply
-
别名:出刀,申请出刀,出刀申请
-
输入格式:atk_apply(或别名) [出刀阵容]
PS:出刀阵容要求不存在名称重复且各角色名字以空格隔开角色名。
-
-
atk_finish
- 别名:完成,出刀完成,完成出刀,出刀完毕
- 输入格式:atk_finish(或别名) [出刀总伤害]
-
on_tree
- 别名:挂树,已挂树,申请挂树,会长!我挂树了!
- 输入格式:on_tree(或别名)
-
save_tree
- 别名:救树,申请救树,别慌!我来也!
- 输入格式:save_tree(或别名) [出刀总伤害]
-
get_list
- 别名:查看,查看情况,获取情况
- 输入格式:get_list(或别名)
-
act_apply
- 别名:代理,变身,代刀
- 输入格式:act_apply(或别名) [所代理会员昵称]
-
act_cancel
- 别名:还原,取消代理,取消代刀
- 输入格式:act_cancel(或别名)
指令使用注意事项:
- 使用指令前请艾特机器人,PS:复制别人对机器人的艾特是无效的。
- 任何带有参数的指令,在使用时,参数和指令之间须有一空格
- 若使用了某一需要参数的指令,却没有给出参数,此时Bot会自行向你索取参数,此时用户无需艾特机器人,直接发送参数即可。
- 任何指令不可以中途结束,如果机器人在向你索取参数,请先上传好参数,再执行下一指令。
PCR_Ro_Bot自带数据记录,整理,与导出的功能,机器人运行之后,您可以在程序根目录下找到记录信息的文件。
程序默认调用项目根目录下的PCR_Bot_Template.xlsx文件,并将信息记录在其中。
注意:程序目前只支持处理 PCR_Bot_Template.xlsx 文件中的表格格式,请不要擅自修改本文件,在本项目的 /docs目录下存有一份额外的 PCR_Bot_Template.xlsx文件,请在需要时复制至根目录。
您可以通过查看这份文件,来实时查看数据的记录情况。
注意:请尽量不要在有人使用指令时打开该文件,这会导致机器人运行错误。推荐的做法是复制一份主目录下的 PCR_Bot_Template.xlsx 文件,并查看该副本。
该机器人拥有日志系统,机器人运行之后,您可以在程序 /logs 目录下 pcr_log.txt 文件,并通过其查看日志,监控机器人的运行情况。
非常期待您的任何建议,如果您有任何想法,或者发现了程序中的问题,请务必发起 Issue 或者直接与我联系。
MIT © Rocky Xu