feat(command): 添加监听范围过滤和回复 @控制

- 新增 COMMAND_SCOPE 配置,支持 all/group/private 过滤消息来源
- 新增 COMMAND_ALLOWED_GROUPS 群号白名单,逗号分隔,留空不限制
- 新增 COMMAND_ALLOWED_USERS QQ 号白名单,逗号分隔,留空不限制
- 新增 COMMAND_AT_SENDER 配置,控制回复时是否 @发送者(默认 true)
- 回调响应中 at_sender 字段可覆盖全局配置
- 更新 .env.example 和 README.md 文档
This commit is contained in:
2026-05-03 00:01:10 +08:00
parent 84f671741b
commit ed6e27f162
5 changed files with 98 additions and 17 deletions

View File

@@ -38,3 +38,11 @@ COMMAND_LENGTH_MIN: int = int(os.environ.get("COMMAND_LENGTH_MIN", "2"))
COMMAND_LENGTH_MAX: int = int(os.environ.get("COMMAND_LENGTH_MAX", "4"))
COMMAND_CALLBACK_URL: str = os.environ.get("COMMAND_CALLBACK_URL", "")
COMMAND_CALLBACK_TIMEOUT: int = int(os.environ.get("COMMAND_CALLBACK_TIMEOUT", "180"))
COMMAND_SCOPE: str = os.environ.get("COMMAND_SCOPE", "all") # all / group / private
COMMAND_ALLOWED_GROUPS: frozenset[str] = frozenset(
filter(None, os.environ.get("COMMAND_ALLOWED_GROUPS", "").split(","))
)
COMMAND_ALLOWED_USERS: frozenset[str] = frozenset(
filter(None, os.environ.get("COMMAND_ALLOWED_USERS", "").split(","))
)
COMMAND_AT_SENDER: bool = os.environ.get("COMMAND_AT_SENDER", "true").lower() in ("true", "1", "yes")