OneBot 11 适配器:反向 WS 接入 QQ(NapCat/Lagrange)

- app/onebot.py: /onebot/v11/ws 反向 WS;私聊全回、群聊仅回应 @她 并自动 @ 回去
- CQ 码字符串与消息段数组双格式解析;会话 id ob-<self_id>-p/g-<目标> 与 TUI 隔离
- action echo 配对调用(send_private_msg / send_group_msg),retcode==0 才落历史
- remember_later 的推送(事件确认/关怀/连续天数/身世)自动转成 QQ 消息
- 主动消息路由:push_proactive 优先 TUI、ob- 会话走 QQ,均不在线保持 pending
- 主干重构:chat_turn() 供 TUI 与 OneBot 共用;助手消息由传输层确认送达后落库
- 可选 OB_ACCESS_TOKEN 令牌校验;8 个新测试(回复/CQ剥离/群@/通知转换/主动推送/令牌)
This commit is contained in:
snowy-yang committed 2026-09-29 20:27:13 +08:00
1 parent 8bbab7e92b
commit ea83b5df4b
6 files changed
+412 -80

No files matched your search

+3
View File
@@ -297,8 +297,11 @@ def offline(monkeypatch):
@pytest.fixture
def client(offline, fdb):
"""不带 lifespan 的测试应用(绕过 PG 连接)"""
from app import onebot
app = FastAPI()
app.websocket("/ws")(main.chat)
app.include_router(onebot.router)
return TestClient(app)