From 847755c56a94c6db2b01e2d9015ec742d9f0dcb6 Mon Sep 17 00:00:00 2001 From: HycJack <772403255@qq.com> Date: Sun, 10 May 2026 20:45:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=B6=E9=95=BF=E7=BB=99?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=95=99=E8=A8=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- talkingq-url/banban/service/im.py | 15 +++++++++++++-- talkingq-url/handlers/mqtt_handler.py | 4 ++-- .../handlers/websocket_message_handler.py | 1 - 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/talkingq-url/banban/service/im.py b/talkingq-url/banban/service/im.py index 72cf2da..fa69068 100644 --- a/talkingq-url/banban/service/im.py +++ b/talkingq-url/banban/service/im.py @@ -4,11 +4,11 @@ import json from collections.abc import Mapping from pathlib import Path from typing import Any - +from services.offline_audio_cache import offline_audio_cache from fastapi import HTTPException from services.database_service_base import DatabaseServiceBase from banban.service.message_audio_storage import MessageAudioStorageService, MessageAudioStorageError - +from banban.service.binding import BindingService try: from banban.dao.im import ImDAO, DeviceIdentity, ConversationMessageCreateResult from banban.schemas.im import ( @@ -19,6 +19,9 @@ try: except ModuleNotFoundError: from banban.dao.im import ImDAO, DeviceIdentity, ConversationMessageCreateResult from banban.schemas.im import ChildConversationMessageItem, DeviceMessageCreateRequest, ParentChildMessageCreateRequest +from handlers.audio_file_handler import message_audio_storage_service +from utils.logger import session_logger + PARENT_PARTICIPANT_TYPE = 1 @@ -286,6 +289,14 @@ class ImService(DatabaseServiceBase): child_id=child_id, payload=payload, ) + binding_service = BindingService() + device = await binding_service.get_current_binding(parent_user_id) + try: + audio_url = await message_audio_storage_service.get_audio_url(stored_audio.file_key) + except Exception: + session_logger.error(device.device_id, "audio", f"failed to get audio url: {stored_audio.file_key}", exc_info=True) + audio_url = stored_audio.file_key + await offline_audio_cache.add_audio_url(device.device_id, f"{audio_url}") except Exception: try: await self.audio_storage.delete_audio(stored_audio.file_key) diff --git a/talkingq-url/handlers/mqtt_handler.py b/talkingq-url/handlers/mqtt_handler.py index 1726cd7..d7e0e30 100644 --- a/talkingq-url/handlers/mqtt_handler.py +++ b/talkingq-url/handlers/mqtt_handler.py @@ -344,7 +344,7 @@ class TalkingQMQTTService: "status": "success", "type": 0, "params": { - "url": "http://101.35.224.118:8080/assets/audio/parent_online_zh.mp3" + "url": f"http://{settings.server_host}:{settings.server_port}/assets/audio/parent_online_zh.mp3" }, } await self._publish(f"device/{device_id}/event_resp", response_payload) @@ -371,7 +371,7 @@ class TalkingQMQTTService: "status": "success", "type": 0, "params": { - "url": "http://101.35.224.118:8080/assets/audio/parent_online_zh.mp3" + "url": f"http://{settings.server_host}:{settings.server_port}/assets/audio/parent_online_zh.mp3" }, }, ) diff --git a/talkingq-url/handlers/websocket_message_handler.py b/talkingq-url/handlers/websocket_message_handler.py index 4454776..4030538 100644 --- a/talkingq-url/handlers/websocket_message_handler.py +++ b/talkingq-url/handlers/websocket_message_handler.py @@ -19,7 +19,6 @@ from handlers.prompt_sound_handler import handle_prompt_sound_request from handlers.session_cleanup_handler import handle_old_session_cleanup from config import settings from banban.service.im import im_service as im_conversation_service -from handlers.audio_file_handler import message_audio_storage_service, save_audio_file from fastapi import HTTPException async def handle_websocket_messages(websocket: WebSocket, device_id: str, serial_number: str):