一个强大的 AstrBot 群管理插件,支持通过正则表达式、关键词、白名单和黑名单验证加群申请。
issue请优先加最底下的插件群号
- 🔍 正则表达式支持 - 使用强大的正则表达式匹配加群申请
- 🔑 关键词匹配 - 简单的关键词匹配功能
- ⚪ 白名单功能 - 白名单用户直接通过验证
- ⚫ 黑名单功能 - 黑名单用户直接拒绝申请
- 🎯 群独立配置 - 每个群可以配置独立的验证规则
- 🛡️ 权限管理 - 支持管理员权限控制
- 🧪 测试功能 - 在添加规则前可以先测试匹配效果
- 💎 精美消息 - 所有输出消息都经过精心设计,美观易读
- 📦 模块化设计 - 清晰的代码结构,易于维护和扩展
- 将插件文件夹放入 AstrBot 的
plugins目录 - 在 AstrBot WebUI 中启用插件
- 根据需要配置插件参数
-
添加关键词规则
/gm add 学生 /gm add 工作人员
-
添加正则表达式规则
/gm add /\d{11}/ # 匹配11位数字(手机号) /gm add /[1-9][0-9]{4,}/ # 匹配QQ号
-
查看规则列表
/gm list
-
测试规则
/gm test 我是学生 /gm test 13812345678 -
删除规则
/gm remove 1
| 指令 | 说明 | 权限 |
|---|---|---|
| `/gm add [关键词 | 正则]` | 添加验证规则 |
/gm remove [索引] |
删除指定规则 | 管理员 |
/gm list |
查看当前群规则 | 所有用户 |
/gm clear |
清空所有规则 | 管理员 |
/gm test [文本] |
测试文本匹配 | 所有用户 |
/gm whitelist add [ID] |
添加用户到白名单 | 管理员 |
/gm whitelist remove [ID] |
从白名单移除用户 | 管理员 |
/gm whitelist list |
查看白名单 | 所有用户 |
/gm blacklist add [ID] |
添加用户到黑名单 | 管理员 |
/gm blacklist remove [ID] |
从黑名单移除用户 | 管理员 |
/gm blacklist list |
查看黑名单 | 所有用户 |
/gm help |
显示帮助信息 | 所有用户 |
在插件配置中可以设置以下参数:
- 类型: 列表
- 说明: 管理员ID列表
- 默认值: 空列表(所有用户都可以管理规则)
- 提示: 只有列表中的用户才能添加/删除规则
- 类型: 字符串
- 选项:
allow/reject - 默认值:
allow - 说明: 当群没有配置规则时的默认处理方式
- 类型: 布尔值
- 默认值:
true - 说明: 是否记录加群申请的验证日志
- 类型: 布尔值
- 默认值:
true - 说明: 白名单用户是否绕过规则验证直接通过
- 类型: 布尔值
- 默认值:
true - 说明: 黑名单用户是否直接拒绝,即使匹配规则
| 用途 | 正则表达式 | 说明 |
|---|---|---|
| 手机号 | /\d{11}/ |
匹配11位数字 |
| QQ号 | /[1-9][0-9]{4,}/ |
匹配5位以上数字,首位不为0 |
| 邮箱 | /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/ |
标准邮箱格式 |
| 学号 | /\d{8,12}/ |
匹配8-12位数字 |
| 身份证 | /\d{17}[\dXx]/ |
匹配18位身份证号 |
| 微信号 | /[a-zA-Z][-_a-zA-Z0-9]{5,19}/ |
微信号格式 |
| 邮编 | /\d{6}/ |
匹配6位邮政编码 |
你可以同时添加多个规则,只要匹配到任意一条规则就会通过验证:
/gm add 学生
/gm add 老师
/gm add /\d{11}/
/gm add /@.*\.edu\.cn/
这样,申请消息中包含"学生"、"老师"、11位数字或.edu.cn邮箱的申请都会被允许。
/gm add 学生
/gm add /\d{11}/
/gm add /@.*\.edu\.cn/
验证申请者是否为学生(包含学生关键词、手机号或学校邮箱)
/gm add 工号:\d{4,}/
/gm add 部门
验证申请者是否提供工号或部门信息
/gm add 喜欢
/gm add 爱好
/gm add 感兴趣
验证申请者是否表达了对群主题的兴趣
/gm add /验证码:\d{6}/
要求申请者提供6位验证码(需要配合其他系统)
/gm whitelist add 123456789
/gm whitelist add 987654321
添加特定用户到白名单,这些用户将直接通过验证
/gm blacklist add 111222333
/gm blacklist add 444555666
添加特定用户到黑名单,这些用户将被直接拒绝
/gm whitelist add 123456789
/gm blacklist add 111222333
/gm add 学生
/gm add /\d{11}/
综合使用白名单、黑名单和规则验证:
- 白名单用户直接通过
- 黑名单用户直接拒绝
- 其他用户根据规则验证
插件的所有输出消息都经过精心设计,包含:
- ✅ 成功消息
- ❌ 错误消息
⚠️ 警告消息- 🔒 权限提示
- 📋 列表展示
- 🧪 测试结果
在插件配置中设置 admin_list:
["123456789", "987654321"]只有列表中的用户才能执行以下操作:
- 添加规则
- 删除规则
- 清空规则
所有用户都可以:
- 查看规则列表
- 测试规则匹配
插件使用 AstrBot 的 KV 存储功能,每个群的数据独立存储:
- 存储键格式:
rules_{group_id} - 数据结构:
[
{
"type": "keyword",
"content": "学生",
"created_by": "123456789",
"created_at": 1234567890
},
{
"type": "regex",
"content": "\\d{11}",
"created_by": "123456789",
"created_at": 1234567890
}
]- 存储键格式:
whitelist_{group_id} - 数据结构:
["123456789", "987654321"]- 存储键格式:
blacklist_{group_id} - 数据结构:
["111222333", "444555666"]- 首先检查黑名单,如果用户在黑名单中,直接拒绝
- 然后检查白名单,如果用户在白名单中,直接通过
- 如果没有规则,使用默认模式
- 检查规则匹配,至少匹配一条规则则通过
- 确保正则表达式使用
//包裹 - 确保正则表达式语法正确
- 使用
/gm test测试正则表达式
- 检查是否在群聊中发送指令
- 检查是否为管理员(如果配置了管理员列表)
- 查看错误消息了解具体原因
- 关键词支持部分匹配,可能匹配到不相关的内容
- 使用正则表达式进行精确匹配
- 使用
/gm test测试规则效果
欢迎提交 Issue 和 Pull Request!
本项目采用 AGPL-v3 许可证。
- 作者: mjy1113451
- 项目地址: https://github.com/mjy1113451/group_manager
感谢 AstrBot 提供的强大插件框架! ##作者的插件群 1079297679