fix: Matrix用户消息同步到网页端
- 新增 user_message action 回调 - handle_matrix_message 处理 user_message 通知 - 网页端 WebSocket 接收用户消息
This commit is contained in:
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:
|
||||
|
||||
Reference in New Issue
Block a user