fix: consume pending audio on owner card

This commit is contained in:
stu2not
2026-05-15 15:34:40 +08:00
parent ac14bfc47f
commit 02410e2922

View File

@@ -431,43 +431,10 @@ class TalkingQMQTTService:
is_owner = await card_service.check_card_ownership(nfc_uuid, device_id) is_owner = await card_service.check_card_ownership(nfc_uuid, device_id)
if is_owner: if is_owner:
has_pending = await offline_audio_cache.has_pending_audio(device_id) audio_urls = await offline_audio_cache.pop_audio_urls(device_id)
if nfc_uuid == "53C22B6DA20001": if audio_urls:
payload = {
"msg_id": "005",
"type": 0,
"params": {
"url_1": f"http://{settings.server_host}:{settings.server_port}/assets/audio/test_zh.mp3"
},
}
await self._publish(topic, payload)
return
if has_pending:
audio_urls = await offline_audio_cache.get_audio_urls(device_id)
# 53D92B6DA20001 测试卡片
if nfc_uuid == "53C22B6DA20001":
payload = {
"msg_id": "005",
"type": 0,
"params": {
"url_1": f"http://{settings.server_host}:{settings.server_port}/assets/audio/TalkingQ_XQSN00001005_2f654480.mp3"
}
}
await self._publish(topic, payload)
return
if len(audio_urls) == 0:
payload = {
"msg_id": "005",
"type": 0,
"params": {
"url_1": f"http://{settings.server_host}:{settings.server_port}/assets/audio/no_message.mp3"
},
}
else:
params = {f"url_{k}": audio_url for k, audio_url in enumerate(audio_urls, start=1)} params = {f"url_{k}": audio_url for k, audio_url in enumerate(audio_urls, start=1)}
payload = {"msg_id": "005", "type": 0, "params": params} payload = {"msg_id": "005", "type": 0, "params": params}
await offline_audio_cache.clear_audio_urls(device_id)
await self._publish(topic, payload) await self._publish(topic, payload)
return return