Skip to content

pcrbot/authMS

Repository files navigation

authMS

适用于HoshinoBot v2的授权插件, 可控制cqhttp的事件过滤器. 大部分功能以天枢授权为蓝本而开发. 本插件另有带有web服务的页面, 如果需要请按照注释开启web. 本项目主体框架由wdvxdr1123构建, 火龙添加了一些重要功能.

本授权系统的开发调试过程均以go-cqhttp进行, 请使用v0.9.24-fix2以上版本的go-cqhttp; 不支持v1.0.0以上版本的go-cqhttp.

v0.2.0及之后使用事件过滤器来进行授权控制, cqhttp-mirai暂时不支持此特性, 如果使用cqhttp-mirai请从release下载v0.1.5-fix1版本, 请使用v0.2.2.5以上版本的cqhttp-mirai, 否则Bot进群等部分功能将不可用.

本项目使用GPL-3.0协议, 您使用本插件所造成的一切财产损失或其他形式损失, 均与开发者无关, 开发者不承担任何相关责任.

相关链接: 本项目地址: https://github.com/pcrbot/authMS

HoshinoBot项目地址: https://github.com/Ice-Cirno/HoshinoBot

特点

  • 无GUI ,不依赖Native环境, 依托于nonebot架构, 对不同的操作系统友好

  • 自定义新群试用

  • 自定义到期后是否自动退群

  • 支持自定义入群发言, 退群发言

  • 自定义每日检查频率(最低为每日一次), 可手动快速检查

  • 支持无卡密操作, 直接对一个群的授权进行修改/清零

  • 支持批量操作(网页/私聊)

  • 支持手动提醒群续费(网页)

  • 可自动接受好友请求

  • 自动检查人数

  • 卡密部分自定义

  • 授权检查范围广, 支持以下情形:

    • 被拉近50人以下的群(因为默认不需要被邀请者同意)
    • 超过50人群, 需要机器人同意的群
    • 机器人掉线期间被邀请加入的群
    • 维护者手动登录机器人帐号加入的群

    以上情况加入的群聊, 均会收到授权系统的自动检测, 并可自定义退群或开启试用等操作。

指令示例

注意, 以下指令中的空格均不可省略

仅限超级管理员私聊的指令

  • 【生成卡密 31*5】生成5张31天的卡密
  • 【卡密列表】查看已有卡密的信息,后跟数字来查看对应页数
  • 【授权列表】查看所有授权群的信息,后跟数字来查看对应页数
  • 【管理员帮助】查看管理员指令
  • 【快速检查】立刻检查群的授权, 检查方式与定时任务一样
  • 【刷新事件过滤器】手动刷新事件过滤器

仅限超级管理员的指令

  • 【变更授权 123456789+5】为群123456789增加5天授权, 也可以是减
  • 【转移授权 123456*987654】将群123456的剩余时间转移至群987654
  • 【授权状态】查询此机器人授权信息的统计, 仅限超级管理员
  • 【清除授权 987654】清除群987654的全部授权, 并自动退群(如果配置了的话)
  • 【退群 987654】命令退出群聊987654, 但并不清除剩余授权时间
  • 【变更所有授权 3】为所有已有授权的群增加3天授权时间
  • 【不检查人数 987654】不检查群987654的人数是否超标, 直接在群聊中发送则不必附加群号
  • 【不检查授权 987654】不检查群987654的授权是否过期, 直接在群聊中发送则不必附加群号
  • 【添加白名单 987654】不检查群987654的授权是否过期以及人数是否超标, 直接在群聊中发送则不必附加群号
  • 【移除白名单 987654】将群987654从白名单中移出
  • 【全部白名单】查询全部白名单信息

通用指令

  • 【检验卡密 abcdefghijklemop】检查卡密的有效性
  • 【充值 abcdefghijklemop】群聊使用,为本群充值
  • 【充值 abcdefghijklemop*123456789】为群123456789充值
  • 【充值帮助】查看充值帮助内容

开始使用

  1. 在HoshinoBot的modules目录下克隆本项目:
    git clone https://github.com/pcrbot/authMS.git
    
  2. 安装依赖, 如下载过慢建议清华镜像:
    pip install -r requirements.txt
    
  3. filter.json放入go-cqhttp目录下.
  4. 在HoshinoBot统一配置目录下保存配置信息,命名为authMS.py, 已提供配置样板authMS.py.example, 按照注释修改为您需要的配置. 请注意, 必须配置事件过滤器路径.

其他

  • 日志功能并非Hoshino内置的日志记录, 而是作为单独文件记录. 默认保存位置log/authMS.log, 默认只记录卡密使用, 加群退群被踢.

  • 支持本机多个机器人数据互通, 详情参考authMS.py.example中的注释, SQLite是一个本地化的数据库, 因此不支持网络, 配置目录请注意使用斜杠/.

  • 如果您是初次使用authMS, 且希望配置为到期自动退群, 建议保持默认ENABLE_AUTH为0, 待完成全部现有群授权后, 再修改.

贡献

GitHub@wdvxdr1123

GitHub@xhl6699

GitHub@var

更新日志

v0.2.1

更新时间:2020/9/27

此版本主要进行风控规避#16

  • 配置文件新增以下参数:
    • BEGIN, 用以自定义卡密开头
  • 功能变更与调整:
    • 发言与退群之间间隔增大, 并限速调用
    • 人数检查纳入日志的记录范围
    • 卡密开始部分支持自定义, 总长度不变, 例如PCRkPTNeGFilybVn
    • 进群之后不会立刻退群, 而是等待下一次自动检查任务时退群

v0.2.0

更新时间:2020/9/15

此版本主要针对事件过滤器重构

  • 配置文件新增以下参数:
    • EVENT_FILTER, 事件过滤器配置文件目录.
  • 功能变更与调整:
    • 直接内置了编译好的vue文件
  • 指令变更:
    • 新增管理员指令【刷新事件过滤器】

v0.1.5

更新时间:2020/9/9

此版本主要新增日志、人数限制、白名单系统、以及网页授权管理

  • 配置文件新增以下参数:
    • DEBUG, 默认关闭, 开启后会详细记录所有的日志.
    • LOG, 默认开启, 记录重要日志信息, 如进群退群卡密使用
    • LEAVE_AFTER_DAYS, 在授权到期X天后再退群(仅当配置AUTO_LEAVE为True时有效)
    • MAX_GROUP_NUM, 最大允许的群人数
  • 功能变更与调整:
    • 新增人数检查功能, 在群人数超标时可以根据配置自动退群或者发送提醒
    • 新增白名单功能, 有三种类型, 不检查授权、不检查人数和全部不检查(注意查询授权出来的的结果不会变, 只是不会自动退群或停止响应消息)
    • 更新网页授权管理(by wdvxdr1123)
    • 退群统一由util.gun_group()处理, 退群时将会发送退群原因
    • 修改配置文件中一些参数的默认值
  • 指令变更:
    • 移除无效指令【帮助充值】
    • 新增管理员指令【不检查人数】【不检查授权】【添加白名单】【全部白名单】【移除白名单】
  • 错误修复:
    • 修复管理员帮助无法查看的问题
    • 修复web授权管理的漏洞, POST请求没有鉴权(by wdvxdr1123)

v0.1.4

更新时间:2020/8/26

  • 配置文件新增以下参数:
    • ENABLE_WEB, 是否同时启用web管理(之前需在__init__.py中配置)
    • PASSWORD, web管理密码(之前需在web_server.py配置)
    • REG_HELP_GROUP, 群聊充值帮助文本
    • REG_HELP_PRIVATE, 私聊充值帮助文本
    • ADMIN_HELP, 给管理员的帮助文本
    • FRIEND_APPROVE, 是否自动接受加好友的请求
  • 文件结构调整
  • 新增指令【快速检查】【充值帮助】【管理员帮助】
  • 新增特性: 处理加好友事件
  • 新增特性: 与管理后台分离的激活界面(感谢A-kirami

v0.1.3

更新时间:2020/8/22

  • 添加nonebot_plugin.py.example, 可以实现对yobot的授权控制(虽然早就有了)
  • 配置文件新增以下参数:
    • ENABLE_AUTH, 授权系统自动检查/退群总开关
    • FREQUENCY, 控制授权系统自动检查的频率
    • GROUPS_IN_PAGE, 控制每页显示的群的条数
    • CARDS_IN_PAGE, 控制每页显示的卡密条数
  • 移除配置项目:ALLOW_PRIVETE_CHECK
  • 优化获取全部授权列表时的参数, 大幅降低API调用次数(尤其是在群较多时)

v0.1.2

更新时间:2020/8/18

本次更新合并了HoshinoAuthorizeSystem的功能

  • 新增退群,广播功能
  • 现在获取已授权群的时时候,会返回群名了
  • 使用指令所需权限不足时均增加了提示
  • 精简了转移授权部分的代码

v0.1.1

更新时间:2020/8/18

  • 修正#1, 在设置新群使用天数为0时, 自动退群设置不起作用而直接退群
  • 新增指令, 为所有已有授权的群修改时间

v0.1.0

更新时间:2020/8/15

  • 初版发布