/clanrank

B服公会战排名查询插件

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

clanrank

适用于HoshinoBot v2的插件, 可以在群聊中查询公会战排名(仅B服).

数据均来自Github@Kengxxiao

项目地址 https://github.com/Kengxxiao/Kyouka

网页在线查询 https://kengxxiao.github.io/Kyouka/

本项目地址 https://github.com/pcrbot/clanrank

本插件以HoshinoBot v2为基础编写, 使用HoshinoBot v1请切换至v1分支. 注意, v1版本可能无法得到及时更新和测试, 如果您正在使用HoshinoBot的v1版本, 并修改本插件使其适配v1, 希望您能向本项目的v1分支提交Pull request

如果发生400/441错误, 可能是更新了POST请求头, 请更新或等待更新. 出现404错误则是公会不在列表中, 可能的原因:

  1. 会长在农场, 或会长已换人
  2. 公会已解散
  3. 公会排名不在前2W名
  4. 不是B服公会

假定网站更新比游戏内延迟12分钟, 则每次查询的时间戳生命周期为42分钟, 如果没有过期则只需要发送本机缓存的数据. 请限制使用频率, 为了不给原作者服务器增加太大负担

例如, 缓存的上次查询的时间戳为下午3点, 则下午3:42之前查询会发送本地数据, 3:42之后查询会自动在线更新.

升级注意

已修复CQ码注入漏洞(共两处),当有人尝试利用此旧漏洞注入时,会将攻击者拉黑24小时,此外会通知主人。

此外,clanrank.json缓存文件现已移动到hoshino默认配置目录(即~/.hoshino/)下来保存, 如果您从旧版升级请注意把原来插件目录下的clanrank.json移动到~/.hoshino/clanrank/clanrank.json.

为什么没有自动移动呢, 其实就是我懒而已

指令示例

查询所有公会(需开启服务:公会战排名查询)

  • 查询会长卢本伟, 查询会长名字包含卢本伟的公会的排名
  • 查询公会卢本伟, 查询公会名字包含卢本伟的公会的排名
  • 查询排名5000, 查看5000名的公会分数信息
  • 分数线, 查询分数线

查询自己公会(需开启服务:公会战排名推送)

  • 绑定公会12345567889, 后加的是公会会长的ID
  • 公会排名, 查询本公会排名

使用方法

  1. 切换到Hoshino的模组目录, 然后clone本项目:
    git clone https://github.com/pcrbot/clanrank.git
    
    修改配置文件:在config中启用该模块. 操作方法为编辑Hoshino下的__bot__.py文件:
    nano ~/Hoshino/hoshino/config/__bot__.py
    
    MODULES_ON中仿照格式添加项'clanrank'.
  2. HoshinoBot v1版本请直接克隆v1分支:
    git clone -b v1 https://github.com/pcrbot/clanrank.git
    
  3. 更新请切换到对应目录后, 使用git更新:
    git pull
    
    如果要更换分支:
    git checkout -b 本地分支名 origin/v1
    

TODO

  • 增加缓存机制, 减少调用次数
  • 加入line接口
  • 加入fav接口
  • 加入时间查询参数来查询历史分数
  • 分数线预测/拟合/数据分析
  • 分数线制图

更新日志:

v0.1.6

更新时间: 2020/12/26 10:49

  • 修复【查询公会】指令中存在的CQ码注入漏洞
  • 修复【查询会长】指令中存在的CQ码注入漏洞
  • 新增对主人的通知,当收到疑似恶意利用时将通知主人,并拉黑当事人24小时。

水够3条了,液!

v0.1.5

更新时间: 2020/8/24 8:52

  • 移除消息模板中的人数, 因源站已不再返回
  • 修改了指令帮助【绑定公会】
  • 已知问题:查询缓存机制不启用, 且每次显示的更新时间为1970年, 原因是源站返回的ts值为0, 等待进一步适配 已修复
  • 适配v1, 来自群友Stranger, 在此感谢

v0.1.4

更新时间: 2020/8/01 20:45

  • 新增line接口, 查询分数线(共14条信息)
  • 信息播报模板化, 可在msg_temp.py中自由配置
  • POST请求增加最大超时, 提高稳定性

v0.1.2

更新时间: 2020/8/01 13:30

  • 非公会战期间不会自动每日推送排名

v0.1.1

更新时间: 2020/7/31 8:23

  • 新增BOSS进度条, 来自群艾琳佬
  • 修正v1版本导入了不存在的hoshino.typing的问题, 同时删除了v2版多余的导入
  • 更换示例的地址为pcrbot组织下的永久地址

v0.1.0

更新时间: 2020/7/30 16:00

  • 新增fav接口, 以会长ID查询
  • 新增绑定公会信息, 以及每日推送公会排名
  • 新增缓存机制, 减少对源站的访问次数
  • 更新指令说明

v0.0.6

更新时间: 2020/7/30 9:08

  • 修正header头
  • 适配HoshinoV2
  • 迁出v1分支, 适配Hoshinov1
  • 修正README.md的问题

v0.0.4

更新时间:2020/7/3 11:04

  • 查询结果最后会显示数据更新时间

v0.0.3

更新时间:2020/7/3 3:05

  • 更新请求, 为所有查询时的POST请求添加"history"
  • 添加了对BadRequest的处理, 可以半夜被叫起来修

v0.0.2

更新时间:2020/7/1 12:22

  • 更新请求, 为请求头添加"Referer"

v0.0.1

更新时间:2020/6/30 2:19

  • 初版发布, 支持四种查询模式