GroupManager/
├── groupmanager/ # 插件主包
│ ├── __init__.py # 包初始化
│ ├── core/ # 核心模块
│ │ ├── __init__.py
│ │ ├── config.py # 配置管理
│ │ ├── storage.py # 数据存储
│ │ └── validator.py # 验证器
│ ├── handlers/ # 处理器模块
│ │ ├── __init__.py
│ │ ├── rule_handler.py # 规则处理器
│ │ └── whitelist_blacklist_handler.py # 白名单/黑名单处理器
│ └── utils/ # 工具模块
│ ├── __init__.py
│ ├── message_builder.py # 消息构建器
│ └── permission.py # 权限检查
├── tests/ # 测试模块
│ ├── __init__.py
│ └── test_core.py # 核心模块测试
├── main.py # 插件入口
├── metadata.yaml # 插件元数据
├── _conf_schema.json # 配置模式
├── requirements.txt # 依赖列表
├── ruff.toml # Ruff 配置
├── README.md # 项目文档
├── CHANGELOG.md # 更新日志
└── LICENSE # 许可证
配置管理类,负责:
- 管理管理员列表
- 管理默认模式
- 管理日志设置
- 检查用户权限
数据存储类,负责:
- 使用 AstrBot KV 存储接口
- 存储和读取规则数据
- 存储和读取白名单数据
- 存储和读取黑名单数据
- 提供便捷的添加/删除方法
验证器类,负责:
- 判断是否为正则表达式
- 验证正则表达式有效性
- 测试模式匹配
- 验证加群申请
规则处理器,负责:
- 添加规则
- 删除规则
- 查看规则列表
- 清空规则
- 测试规则匹配
白名单/黑名单处理器,负责:
- 添加用户到白名单
- 从白名单移除用户
- 查看白名单
- 添加用户到黑名单
- 从黑名单移除用户
- 查看黑名单
消息构建器,负责:
- 构建各种类型的消息
- 格式化规则列表
- 格式化白名单/黑名单
- 构建测试结果
- 构建帮助消息
权限检查模块,负责:
- 检查用户是否为管理员
- 遵循 PEP 8 代码风格
- 使用类型注解
- 编写详细的文档字符串
- 使用有意义的变量名和函数名
- 使用 try-except 捕获异常
- 提供清晰的错误信息
- 不要让插件因一个错误而崩溃
- 使用 AstrBot 提供的 KV 存储接口
- 数据存储在 data 目录下
- 避免在插件目录存储持久化数据
- 编写单元测试
- 测试核心功能
- 测试边界情况
- 使用 ruff 格式化代码:
ruff format .
ruff check .- 运行测试:
pytest tests/-
检查代码错误: 使用 AstrBot 的错误检查功能
-
更新文档:
- 更新 README.md
- 更新 CHANGELOG.md
- 提交代码:
git add .
git commit -m "更新内容"
git push- 在
validator.py中添加新的验证逻辑 - 在
storage.py中添加存储方法(如果需要) - 在
rule_handler.py中添加处理方法 - 更新配置模式(如果需要)
- 在对应的处理器中添加新方法
- 使用
@gm.command()或@gm.group()装饰器 - 实现业务逻辑
- 更新帮助消息
- 在
message_builder.py中添加新的构建方法 - 使用 emoji 和格式化增强可读性
- 保持一致的样式风格
A: 使用 logger 记录日志,在 AstrBot 控制台查看输出。
A: 在 _conf_schema.json 中添加配置定义,在 config.py 中添加访问方法。
A: 使用 async/await 语法,确保所有异步操作都正确处理。
欢迎提交 Issue 和 Pull Request!
在提交代码前,请确保:
- 代码已通过 ruff 格式化
- 所有测试通过
- 添加了必要的注释
- 更新了相关文档