Skip to content
This repository was archived by the owner on Jan 19, 2021. It is now read-only.

ethpch/AzusaBot_old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AzusaBot_old

旧AzusaBot项目。停止维护。

旧版缺陷:

使用内存存放所有数据,利用json做数据持久化。
功能与QQ机器人框架nonebot强耦合,不能脱离其单独执行功能,丧失了接入其他机器人框架的可能性。

新版计划:

完备的数据库支持。
调整项目结构,让底层功能独立出来,机器人框架仅负责数据的发送与接收,从而使方便地接入其他机器人框架成为可能。
计划制作网站,使用api进行调用。

简介

使用 nonebot 框架搭建的QQ机器人。

已实现的功能

chat.group 群聊相关功能

在群聊中探索吧

pcr.battle 公主连结公会战管理

优点

Azusa的出刀仅有一个指令出刀,它能够自动统计尾刀与遗留时间刀,也提供撤回功能防止误报。
详尽的查询功能,查分(自己或他人),查排行(总分或单个boss分数),查boss状态,查挂树,查预约/剩余刀(有不同的模式,根据需要提供对应的参数),查已出刀的信息(有不同的模式,根据需要提供对应的参数)
作业功能可以做到针对单个boss提交作业图片,也可以针对某一个阶段的全boss作业进行提交(感谢海雾鸽友会),同时提供对应的作业查询功能(有些许bug,疑似时间过长会失去缓存导致丢失个别作业图片,发生概率较低)
开始公会战 设置最大血量 设置分数倍率 设置阶段转换功能使得无须重启机器人就可以改变下一期会战参数,一次部署永久可用。
自动统计分数,1到5号boss分数以及总分均会统计,也可以统计战斗力。(分数统计使用公式“伤害*分数倍率”进行四舍五入后得到结果,会存在个位数的误差,没搞懂pcr到底怎么计算的)

缺点

Azusa的会战管理要求精确到个位地汇报伤害。需要绝对的精确(撞刀时以机器人统计的剩余血量为准,pcr也是这么统计的),否则血量统计会出问题。可以使用查询已出刀信息指令来查找最近的出刀信息,与游戏内进行比对。

其他提示

掉刀时伤害为0。
撞刀时以机器人统计的剩余血量为准,pcr也是这么统计的。
群友装死鱼拒不加入公会暂时无法处理。加入后可以使用出刀指令的第二模式为其代报。
下次公会战开启时,发生了人员变动,且前人未退会时,可以使用查询昵称功能与解除注册功能配合使其从公会中删除。
善用会战帮助

pixiv P站相关功能

权限控制,R18与R18G过滤器
详细的参数设置,指定类型、收藏数的搜索

部署

假设你已经具有一定的代码基础,能够参阅文档自行安装环境,能够自行配置虚拟环境与安装依赖。
本项目基于python3.7,3.7及以上版本可以使用。

{
  "$schema": "https://cqhttp.cc/config-schema.json",
  "ws_reverse_url": "ws://127.0.0.1:8080/ws/",
  "ws_reverse_reconnect_interval": 3000,
  "ws_reverse_reconnect_on_code_1000": true,
  "use_ws_reverse": true,
  "post_message_format": "string",
  "update_source": "global",
  "update_channel": "stable",
  "show_log_console": true,
  "log_level": "info"
}

Docker环境下部署应当将ws_reverse_url的值修改为ws://172.17.0.1:8080/ws/

  • 使用git下载本项目
    git clone https://github.com/ethpch/AzusaBot_old.git
  • 修改配置文件AzusaBot/config_example.py,尤其注意HOST PORT的值应当与cqhttp插件配置对应。特殊的,HOST可以配置0.0.0.0监听所有来源。修改完成后,将config_example.py改名为config.py
  • 创建虚拟环境并激活,下载依赖
virtualenv venv --python=python3.7
source venv/bin/activate
cd AzusaBot
pip install -r requirements.txt
  • 运行Azusa
    python AzusaBot.py

基本功能

echo 手动复读
dice 骰子,骰点范围 1-100 ,群聊中 @其他人 可一起骰点
查询插件状态 查询当前的插件启用状态,对用户私聊与群聊有不同的表现。

以下功能为超级用户可以执行

test打印测试信息
datasave保存所有数据
dataload读取所有数据
resetmain重置主要QQ,用于主QQ被封禁时,不需要重启机器人即可重新设置主QQ。被封过很多次了,色图真好看,下次还敢 必须要使用同一个酷Q客户端登录将要重置的主QQ
添加到用户黑名单 10000将用户10000添加到用户黑名单
添加到群黑名单 10000将群10000添加到群黑名单
删除用户黑名单 10000将用户10000从用户黑名单删除
删除群黑名单 10000将群10000从用户黑名单删除
查询黑名单查询所有的黑名单信息
_exit保存所有信息并退出机器人

公主连结会战管理相关

本机器人的会战管理思路为“出一刀报一刀”,要求精确伤害值,从而使提交伤害无需其他指令,尾刀等会由机器人自动管理。(特殊的,掉刀即0伤害)

工作流程:

会战帮助查询帮助指令
群主@Bot 创建公会将当前群注册为一个公会
注册加入当前群的公会
管理员@Bot 开始公会战初始化一个公会战
刀 123456输出123456伤害,即报伤害123456
(取消)预约 2(取消)预约2号boss
挂(下)树挂(下)树
查询boss查询当前boss状态
查询挂树查询挂树的玩家
查询剩余刀查询所有未出完刀的玩家(依据参数不同会有不同的结果,查看全部功能)
查询预约查询所有预约(依据参数不同会有不同的结果,查看全部功能)
作业会战作业系统,查看全部功能

全部功能:

会战帮助查询帮助指令。
@Bot创建公会 台服 群主可执行。以台服数据初始化一个公会。具体数据可以在会战中修改。
@Bot删除公会 群主可执行。删除当前群注册公会。
@Bot开始公会战 6 0 群主及管理员可执行。以数据“总天数6天”“当前为会战前1天”为参数来初始化一个会战。默认值为 7 0,即“总天数7天”“当前为会战前1天”。其他例子:5 -1即“总天数5天”“当前为会战前2天”。
@Bot结束公会战 群主及管理员可执行。结束当前公会战,在项目根目录的Azusa/data/pcr文件夹下保存公会战分数统计的csv文件(可使用excel转为xlsx文件)。

注册 PlayerA 以PlayerA为昵称加入当前群注册公会。默认值为当前群名片。

如无特殊说明,以下功能所有第一个参数为PlayerA(玩家昵称)的命令默认值均为自己的昵称(即修改自己)。

解除注册 PlayerA 将昵称PlayerA的玩家退会。默认值为自己的昵称(解除注册将自己退会)。
改名 PlayerA PlayerB将昵称PlayerA的玩家改名为PlayerB。
查分 PlayerA查询昵称PlayerA的玩家的分数。
查询排行 1查询1号boss的分数排行。无参数为查询总分排行(查询排行查询总分排行)。
修改战斗力 PlayerA 5将昵称PlayerA的玩家的战斗力修改为5。
查询昵称 10000查询QQ号为10000的玩家的昵称。
查询ID PlayerA查询昵称为PlayerA的玩家的QQ号。
查询所有玩家查询当前公会中的所有玩家昵称。

出刀依据参数不同,共有四种模式。

出刀 123456自己对boss造成123456点伤害。
出刀 PlayerA 123456PlayerA对boss造成123456点伤害(为PlayerA代报)。
出刀 3 4 123456自己对3阶段的4号boss造成123456点伤害(漏报刀,不对当前boss产生影响)。
出刀 PlayerA 3 4 123456PlayerA对3阶段的4号boss造成123456点伤害(为PlayerA代报漏报刀)。

申请出刀 PlayerA为昵称PlayerA的玩家申请出刀。启用此功能需要取消这里的注释,否则不会阻止其他人申请出刀。
预约 PlayerA 2为昵称为PlayerA的玩家预约2号boss。
取消预约 PlayerA 2为昵称为PlayerA的玩家取消预约2号boss。
挂树 PlayerA使昵称为PlayerA的玩家挂树。
下树 PlayerA使昵称为PlayerA的玩家下树。
重置状态 PlayerA仅管理员可执行,重置昵称PlayerA的玩家的状态(刀数,预约,挂树,尾刀)
调整boss 18 3 9000000将当前boss调整为18周目,3号boss,9000000当前血量。
boss信息不正确将当前boss信息设置为过时。仅能使用出刀的三参数与四参数模式。应当尽快使用调整boss更新boss信息。
设置最大血量 3 7000000 9000000 12000000 15000000 20000000将3阶段的boss的最大血量分别设置为700w,900w,1200w,1500w,2000w。用于调整初始化参数。
设置分数倍率 3 2 2 2.4 2.4 2.6将3阶段的boss的分数倍率分别设置为2,2,2.4,2.4,2.6。用于调整初始化参数。
设置阶段转换 1 4 11 35将阶段转换的周数设置为1,4,11,35,即1周目进入1阶段,4周目进入2阶段,11周目进入3阶段,35周目进入4阶段。
@Bot撤回出刀撤回上一刀。
查询已出刀信息依据参数不同,共有4种模式。

查询已出刀信息 3查询倒序第3刀的信息(X)。
查询已出刀信息 1-3查询倒序第1刀到倒序第3刀的信息(X-Y)。
查询已出刀信息 正序 5查询正序第5刀的信息(正序)。
查询已出刀信息 3 PlayerA查询昵称PlayerA的玩家倒序第3刀的信息(X Player)。

查询boss查询boss信息。
查询挂树查询挂树信息。
查询剩余刀依据参数不同,共有3种模式。

查询剩余刀查询所有的剩余刀信息。
查询剩余刀 3查询剩余3刀的玩家。
查询剩余刀 PlayerA查询昵称PlayerA的玩家剩余刀。

查询预约依据参数不同,共有3种模式,类似于查询剩余刀
查询公会总分查询公会总分。
查询会战详细信息查询当前会战详细信息,包括“期数”,“总时长”,“已进行天数”,“分数倍率信息”,“血量上限信息”,“阶段转换信息”。
作业依据第一个参数的不同,共有3种模式。

作业 查询 3 1查询3阶段1号boss的作业。特殊的,无boss序号参数时为全boss作业。
作业 提交 3 1 [图片]提交[图片]为3阶段1号boss的作业。特殊的,无boss序号参数时为全boss作业。
作业 删除 [图片]删除[图片]的作业。

保存会战信息仅超级用户可以使用,保存当前所有的会战信息。 读取会战信息仅超级用户可以使用,在会战未开启(已注册公会)时读取当前群保存的会战信息。 已知其他小bug: 尚未考虑国台日服时差区别,若要管理日服,应当在这里 这里 以及这里的时间hour参数调整为正确的时间。新版本将会修正这个bug。

pixiv相关

需要酷Q客户端为酷Q PRO,否则仅有文字信息。
全部功能:

pixiv帮助查询帮助指令。
允许R18仅管理员可执行,在当前群取消R18过滤器。
禁止R18仅管理员可执行,在当前群开启R18过滤器(默认开启)。
允许R18G群内仅管理员可执行,在当前群取消R18G过滤器。用户可单独执行,为当前用户取消R18G过滤器。在R18开启后才会生效。
禁止R18G仅管理员可执行,在当前群开启R18G过滤器(默认开启)。用户可单独执行,为当前用户启用R18G过滤器(默认开启)
PID搜索评论区 12345678搜索PID12345678的图片的评论区。
UID搜索 12345678搜索UID12345678用户的所有信息。
UID搜索关注 12345678搜索UID12345678用户的关注用户。
UID搜索好P友 12345678搜索UID12345678用户的好P友。
用户搜索 关键词关键词为关键词搜索用户。

如无特殊说明,以下功能均受到R18过滤器与R18G过滤器管制。

PID搜索 12345678搜索PID12345678的图片全部信息。R18与R18G过滤器生效时,将不输出R18与R18G图片,仅输出信息。

如无特殊说明,以下功能均含有多图 原图 收藏x 页x 类型五个参数,分别可以指定搜索一个PID下的所有图片,图片的原图,收藏数x以上的图片,第x页分页,作品类型(插画,漫画,全部)

PID搜索相关 12345678搜索PID12345678图片相关的所有图片。
PIXIV推荐搜索推荐。

特别提醒:请如同使用P站搜索框那样使用搜索功能。例如,“-关键词”效果为排除该关键词的图片。同时,应当多加使用收藏x参数,否则会搜索到质量很差的图片。

标签搜索 关键词以关键词关键词进行模糊标签搜索,多关键词使用空格分离。
精确标签搜索 关键词以关键词关键词进行精确标签搜索。不支持多关键词。
标题搜索 关键词以关键词关键词进行标题搜索,多关键词使用空格分离。
UID搜索作品 12345678搜索UID12345678用户的所有作品。
UID搜索收藏 12345678搜索UID12345678用户的收藏作品。

榜单系列,如无特殊说明,以下功能额外含有一个xxxx-xx-xx日期参数,指定以xxxx-xx-xx日期开始搜索(例:2020-01-01)。

P站日榜
P站周榜
P站月榜
P站男性向日榜
P站女性向日榜
P站原创周榜
P站新人周榜
P站R18日榜
P站R18男性向日榜
P站R18女性向日榜
P站R18周榜
P站R18G周榜
P站漫画日榜
P站漫画周榜
P站漫画月榜
P站新人漫画周榜
P站R18漫画日榜
P站R18漫画周榜
P站R18G漫画周榜

PIXIV本地统计统计图库中已下载图片的所有信息。带参数“详细”(PIXIV本地统计 详细)将统计图库所有信息。
清理P站图片缓存清空所有的图片缓存。

友情链接

本人在pcr台服,去年9月入坑,在第一个公会呆到现在,说好的摸鱼公会几个月前摸着摸着进700了现在都在300了,那时候会长说要弄个机器人管理会战,不然总是撞刀,会长整天处理出刀顺序还有结束后副会抄分。找了点资料(yobot和hoshino)发现都不太符合咱们的需求,遂决定自己手撸一个能统分,查状态以及其他会长指定功能的机器人。
自己仍在努力学习python,这里尤其感谢HoshinoBot在部分代码与架构方面给予的灵感。
yobot
HoshinoBot

开源库nonebot,它是机器人框架。
nonebot
开源库pixivpy-async,它是pixiv模块的基本依赖。
pixivpy-async

About

(旧)使用nonebot框架的QQ机器人,支持PCR公会战管理,pixiv机器人。计划重构中。

Resources

License

Stars

Watchers

Forks

Contributors

Languages