|
|
f82363f45f
|
♻️ refactor(command): 配置系统从 SQLite 迁移至 YAML 并修复白名单失效
- 用 CommandConfig dataclass 单例替代模块级变量,解决 from import 造成的本地绑定不随 global 更新的 bug
- 删除 db.py,改用 settings.yaml 存储动态配置,首次启动自动创建并合并 .env 默认值
- 新增文件轮询 watcher(2 秒),检测 YAML 变更自动热重载
- 管理界面 API 改为直接读写 YAML,即时生效
- 依赖 aiosqlite 替换为 pyyaml
|
2026-05-03 18:23:29 +08:00 |
|
|
|
9ffe78a9c2
|
✨ feat(command): 添加动态配置、黑白名单与后台管理界面
- 新增 SQLite 数据库层(db.py)持久化命令监听配置,支持热更新无需重启
- 命令过滤从白名单扩展为黑白名单双模式(COMMAND_LIST_MODE: allow/deny)
- 新增后台管理页面 /admin/,侧边栏布局,支持在线修改所有命令监听配置
- 新增 REST API:GET/PUT /api/settings、POST /api/settings/reload
- 新增 rebuild_pattern() 支持配置变更后正则动态重编译
- 中间件放行 /admin 和 /api 路径免鉴权
- 添加 aiosqlite 依赖
|
2026-05-03 15:22:53 +08:00 |
|
|
|
ed6e27f162
|
✨ feat(command): 添加监听范围过滤和回复 @控制
- 新增 COMMAND_SCOPE 配置,支持 all/group/private 过滤消息来源
- 新增 COMMAND_ALLOWED_GROUPS 群号白名单,逗号分隔,留空不限制
- 新增 COMMAND_ALLOWED_USERS QQ 号白名单,逗号分隔,留空不限制
- 新增 COMMAND_AT_SENDER 配置,控制回复时是否 @发送者(默认 true)
- 回调响应中 at_sender 字段可覆盖全局配置
- 更新 .env.example 和 README.md 文档
|
2026-05-03 12:26:44 +08:00 |
|
|
|
84f671741b
|
🐛 fix(command): 回调回复图片时解析本地文件路径
- 复用 message handler 的 _resolve_url 解析上传文件的相对路径
- 回调返回的 image/video/file url 若为已上传文件则补全为绝对路径
- 修复本地文件名被当作 URL 发送导致识别失败的问题
|
2026-05-03 00:51:07 +08:00 |
|
|
|
a7f52e33fb
|
🐛 fix(command): 回调超时从 10s 改为可配置,默认 180s
- 新增 COMMAND_CALLBACK_TIMEOUT 配置项,默认 180 秒
- 生图等耗时命令不再因超时中断
|
2026-05-03 00:37:16 +08:00 |
|
|
|
e62fc13f7c
|
✨ feat(command): 命令名支持中文、数字、字母等任意非空白字符
- 正则从仅匹配中文改为匹配任意非空白字符(\S)
- 中文、数字、字母、其他字符均按 1 个字符计数
- 长度范围仍由 COMMAND_LENGTH_MIN/MAX 控制
|
2026-05-02 21:30:19 +08:00 |
|
|
|
d4962a840d
|
✨ feat(command): 命令名长度改为可配置范围 2~4 个中文字
- 将 COMMAND_LENGTH 拆分为 COMMAND_LENGTH_MIN 和 COMMAND_LENGTH_MAX
- 正则匹配支持 2~4 个中文字,范围通过 .env 配置
- 默认最小 2 字、最大 4 字
|
2026-05-02 21:13:22 +08:00 |
|
|
|
c6ba7e2e37
|
✨ feat(command): 支持无参数命令触发
- 正则改为允许命令后无空格和内容,如 `#测试命令` 也可触发
- 命令内容为空时 content 返回空字符串而非匹配失败
|
2026-05-02 21:01:33 +08:00 |
|
|
|
89461b6ed6
|
🐛 fix(command): 修复 Event 对象无 reply 方法
- events() 返回的是 Event(data=GroupMessageEvent) 包装对象
- 改用 event.data(消息事件实体)构建回复
- 手动构建 MessageArray + add_reply 实现引用回复
- 群聊默认 @发送者,at_sender=false 可关闭
|
2026-05-02 20:38:09 +08:00 |
|
|
|
601bce8847
|
✨ feat(command): 回复时引用原消息
- 使用 event.reply() 替代手动调用 send_group/private_text
- 自动引用触发命令的原消息,回复带引用效果
- 群聊默认 @发送者,可通过 at_sender=false 关闭
|
2026-05-02 19:58:47 +08:00 |
|
|
|
af0f6c7ec6
|
✨ feat(command): 回调响应自动回复到 QQ
- 回调服务器可返回 reply 或 messages 字段,插件自动回复到原消息来源
- reply 为纯文本回复,messages 格式同 /webhook 接口
- 支持通过 group_id/user_id 覆盖回复目标
- 无需回复时返回空 JSON 即可
- 更新 README 文档说明回调响应格式
|
2026-05-02 19:29:18 +08:00 |
|
|
|
ee1bd583d8
|
✨ feat(command): 添加命令监听与外接回调功能
- 新增 `#四个中文字+空格` 消息匹配规则,可配置前缀和长度
- 匹配成功后 POST 到 COMMAND_CALLBACK_URL,携带命令名、内容、用户信息
- 使用 EventMixin.events() 订阅消息流,on_close 自动取消监听
- 新增配置项:COMMAND_PREFIX、COMMAND_LENGTH、COMMAND_CALLBACK_URL
- 更新 .env.example 和 README 文档
|
2026-05-02 19:02:40 +08:00 |
|