fix: Matrix用户消息同步到网页端
- 新增 user_message action 回调 - handle_matrix_message 处理 user_message 通知 - 网页端 WebSocket 接收用户消息
This commit is contained in:
BIN
ai_chat.db
BIN
ai_chat.db
Binary file not shown.
26
main.py
26
main.py
@@ -422,7 +422,7 @@ async def update_config(data: dict, db: Session = Depends(get_db)):
|
||||
|
||||
# ==================== Matrix消息处理回调 ====================
|
||||
|
||||
async def handle_matrix_message(action: str, conversation_id: str = None, user_message: str = None, room_id: str = None, message_id: int = None):
|
||||
async def handle_matrix_message(action: str, conversation_id: str = None, user_message: str = None, room_id: str = None, message_id: int = None, sender: str = None):
|
||||
"""处理从Matrix收到的消息"""
|
||||
|
||||
if action == "new_conversation":
|
||||
@@ -433,6 +433,30 @@ async def handle_matrix_message(action: str, conversation_id: str = None, user_m
|
||||
})
|
||||
return
|
||||
|
||||
if action == "user_message":
|
||||
# 用户消息 - 同步到网页端
|
||||
db = SessionLocal()
|
||||
try:
|
||||
conv_service = ConversationService(db)
|
||||
conversation = conv_service.get_conversation(conversation_id)
|
||||
if conversation:
|
||||
# 发送用户消息通知到网页端
|
||||
await manager.send_to_user(MAIN_USER_ID, {
|
||||
"type": "user_message",
|
||||
"conversation_id": conversation_id,
|
||||
"message": {
|
||||
"id": message_id,
|
||||
"role": "user",
|
||||
"content": user_message,
|
||||
"source": "matrix",
|
||||
"sender": sender,
|
||||
"created_at": datetime.now().isoformat()
|
||||
}
|
||||
})
|
||||
finally:
|
||||
db.close()
|
||||
return
|
||||
|
||||
if action == "chat":
|
||||
db = SessionLocal()
|
||||
try:
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
@huangzhuang_bro:matrix.tphai.com BQHGFLQEPR matrix-ed25519 IrEHmvqotfHKLyx1JRJp4RthUVyBT8qQX72qBifRRyQ
|
||||
@tester:matrix.tphai.com AJFVRTHLJY matrix-ed25519 4mRjLhM8xbwjkwQP2T/iB3UZJoaADgP6cCVUiB8AtSk
|
||||
@tester:matrix.tphai.com GVSFGGYNJL matrix-ed25519 8qV2own4G3m2nki+izFDBOrAxtbGl8RoneM3qUPkThU
|
||||
@tester:matrix.tphai.com IMEQIQPXTR matrix-ed25519 6Yd4lmhP6jdkkNvh1rIw6TRK331ZUyiAt5G5hPeYqSE
|
||||
Binary file not shown.
@@ -224,6 +224,17 @@ class MatrixBot:
|
||||
}
|
||||
)
|
||||
|
||||
# 立即通知网页端有新用户消息(通过回调)
|
||||
if self.on_message_callback:
|
||||
await self.on_message_callback(
|
||||
action="user_message",
|
||||
conversation_id=conversation.conversation_id,
|
||||
user_message=message_text,
|
||||
room_id=room.room_id,
|
||||
message_id=user_msg.id,
|
||||
sender=sender
|
||||
)
|
||||
|
||||
# 发送"正在输入"状态
|
||||
try:
|
||||
await self.client.room_typing(room.room_id, typing_state=True)
|
||||
|
||||
Reference in New Issue
Block a user