/Kook-SponsorRole-Bot

SponsorRole Bot for Kook

Primary LanguagePython

Kook-SponserRole-Bot

SponserRole Bot for Kook

kook的助力者感谢bot。服务器新增助力用户的时候,在指定频道发送信息感谢助力者

1.使用

命令 功能
/hh 测试bot是否上线/是否有发言权限
/sphelp 帮助命令
/spr 当前频道发送助力者感谢信息
/spr #文字频道 指定频道发送助力者感谢信息
/spr-d 取消当前服务器的助力者提醒
/spr-text 文字 自定义助力者信息的感谢文字
更多

旧版本的助力者感谢信息基于助力者的角色组id,kook新提供了查询服务器助力历史的接口,不再需要使用这个办法来替代查询!

需要注意,这里的id指的是角色/频道的唯一数字id,并非名字!

获取方式(必须要是服务器管理员,必须在pc端操作)

个人设置-高级设置-打开开发者模式,进入服务器设置-角色设置-右键助力者角色-复制id

文字频道id获取方式同上,打开开发者模式后,右键文字频道-复制id即可

设置之前,请使用/hh命令检查机器人是否有在当前频道或指定频道发言的权限,避免设置失效!


2.说明

当前获取助力者角色只能依靠/api/v3/guild/user-list 接口获取到当前服务器的指定角色id的用户列表,将其存放本地后,过一段时间二次获取,比较角色列表区别,即可发现新的助力者

但由于官方没有提供助力者专门的接口,用上面的办法有一些缺陷:

  • 一次助力的时长是一个月,可以叠加助力包个数,但是不能叠加助力时间
  • 助力者角色是系统自动上的,且无法被管理员删除;系统也不会在助力结束后解除某个用户的助力者角色
  • 因为无法被删除,所以无法得知一个用户是否有进行二次助力

综上所述,本功能可以说是一个“一次性功能”,只有用户首次在某个服务器助力的时候,才能有通知,且无法得知该助力者助力了几个包

3.依赖

基本框架:khl.py 提供的kook sdk以及使用教程

kook api文档:官方文档 通过aiohttp库调用api

关于code里面的makefile,这是用于linux下快速启动bot后台运行的。如果你想在自己的linux服务器使用,请把里面的py3改成你自己云服务器上的python(就是用来命令行运行python程序的哪一个,如python3