修复家长给设备留言问题
This commit is contained in:
@@ -4,11 +4,11 @@ import json
|
|||||||
from collections.abc import Mapping
|
from collections.abc import Mapping
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
from services.offline_audio_cache import offline_audio_cache
|
||||||
from fastapi import HTTPException
|
from fastapi import HTTPException
|
||||||
from services.database_service_base import DatabaseServiceBase
|
from services.database_service_base import DatabaseServiceBase
|
||||||
from banban.service.message_audio_storage import MessageAudioStorageService, MessageAudioStorageError
|
from banban.service.message_audio_storage import MessageAudioStorageService, MessageAudioStorageError
|
||||||
|
from banban.service.binding import BindingService
|
||||||
try:
|
try:
|
||||||
from banban.dao.im import ImDAO, DeviceIdentity, ConversationMessageCreateResult
|
from banban.dao.im import ImDAO, DeviceIdentity, ConversationMessageCreateResult
|
||||||
from banban.schemas.im import (
|
from banban.schemas.im import (
|
||||||
@@ -19,6 +19,9 @@ try:
|
|||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
from banban.dao.im import ImDAO, DeviceIdentity, ConversationMessageCreateResult
|
from banban.dao.im import ImDAO, DeviceIdentity, ConversationMessageCreateResult
|
||||||
from banban.schemas.im import ChildConversationMessageItem, DeviceMessageCreateRequest, ParentChildMessageCreateRequest
|
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
|
PARENT_PARTICIPANT_TYPE = 1
|
||||||
@@ -286,6 +289,14 @@ class ImService(DatabaseServiceBase):
|
|||||||
child_id=child_id,
|
child_id=child_id,
|
||||||
payload=payload,
|
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:
|
except Exception:
|
||||||
try:
|
try:
|
||||||
await self.audio_storage.delete_audio(stored_audio.file_key)
|
await self.audio_storage.delete_audio(stored_audio.file_key)
|
||||||
|
|||||||
@@ -344,7 +344,7 @@ class TalkingQMQTTService:
|
|||||||
"status": "success",
|
"status": "success",
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"params": {
|
"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)
|
await self._publish(f"device/{device_id}/event_resp", response_payload)
|
||||||
@@ -371,7 +371,7 @@ class TalkingQMQTTService:
|
|||||||
"status": "success",
|
"status": "success",
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"params": {
|
"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"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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 handlers.session_cleanup_handler import handle_old_session_cleanup
|
||||||
from config import settings
|
from config import settings
|
||||||
from banban.service.im import im_service as im_conversation_service
|
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
|
from fastapi import HTTPException
|
||||||
|
|
||||||
async def handle_websocket_messages(websocket: WebSocket, device_id: str, serial_number: str):
|
async def handle_websocket_messages(websocket: WebSocket, device_id: str, serial_number: str):
|
||||||
|
|||||||
Reference in New Issue
Block a user