mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Satellite announcement to track original media id (#136141)
This commit is contained in:
parent
a60d2b69e3
commit
5b49ba563e
@ -96,7 +96,11 @@ class AssistSatelliteAnnouncement:
|
|||||||
media_id: str
|
media_id: str
|
||||||
"""Media ID to be played."""
|
"""Media ID to be played."""
|
||||||
|
|
||||||
|
original_media_id: str
|
||||||
|
"""The raw media ID before processing."""
|
||||||
|
|
||||||
media_id_source: Literal["url", "media_id", "tts"]
|
media_id_source: Literal["url", "media_id", "tts"]
|
||||||
|
"""Source of the media ID."""
|
||||||
|
|
||||||
|
|
||||||
class AssistSatelliteEntity(entity.Entity):
|
class AssistSatelliteEntity(entity.Entity):
|
||||||
@ -396,7 +400,10 @@ class AssistSatelliteEntity(entity.Entity):
|
|||||||
"""Resolve the media ID."""
|
"""Resolve the media ID."""
|
||||||
media_id_source: Literal["url", "media_id", "tts"] | None = None
|
media_id_source: Literal["url", "media_id", "tts"] | None = None
|
||||||
|
|
||||||
if not media_id:
|
if media_id:
|
||||||
|
original_media_id = media_id
|
||||||
|
|
||||||
|
else:
|
||||||
media_id_source = "tts"
|
media_id_source = "tts"
|
||||||
# Synthesize audio and get URL
|
# Synthesize audio and get URL
|
||||||
pipeline_id = self._resolve_pipeline()
|
pipeline_id = self._resolve_pipeline()
|
||||||
@ -416,6 +423,7 @@ class AssistSatelliteEntity(entity.Entity):
|
|||||||
language=pipeline.tts_language,
|
language=pipeline.tts_language,
|
||||||
options=tts_options,
|
options=tts_options,
|
||||||
)
|
)
|
||||||
|
original_media_id = media_id
|
||||||
|
|
||||||
if media_source.is_media_source_id(media_id):
|
if media_source.is_media_source_id(media_id):
|
||||||
if not media_id_source:
|
if not media_id_source:
|
||||||
@ -433,4 +441,6 @@ class AssistSatelliteEntity(entity.Entity):
|
|||||||
# Resolve to full URL
|
# Resolve to full URL
|
||||||
media_id = async_process_play_media_url(self.hass, media_id)
|
media_id = async_process_play_media_url(self.hass, media_id)
|
||||||
|
|
||||||
return AssistSatelliteAnnouncement(message, media_id, media_id_source)
|
return AssistSatelliteAnnouncement(
|
||||||
|
message, media_id, original_media_id, media_id_source
|
||||||
|
)
|
||||||
|
@ -163,21 +163,32 @@ async def test_new_pipeline_cancels_pipeline(
|
|||||||
(
|
(
|
||||||
{"message": "Hello"},
|
{"message": "Hello"},
|
||||||
AssistSatelliteAnnouncement(
|
AssistSatelliteAnnouncement(
|
||||||
"Hello", "https://www.home-assistant.io/resolved.mp3", "tts"
|
message="Hello",
|
||||||
|
media_id="https://www.home-assistant.io/resolved.mp3",
|
||||||
|
original_media_id="media-source://bla",
|
||||||
|
media_id_source="tts",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
{
|
{
|
||||||
"message": "Hello",
|
"message": "Hello",
|
||||||
"media_id": "media-source://bla",
|
"media_id": "media-source://given",
|
||||||
},
|
},
|
||||||
AssistSatelliteAnnouncement(
|
AssistSatelliteAnnouncement(
|
||||||
"Hello", "https://www.home-assistant.io/resolved.mp3", "media_id"
|
message="Hello",
|
||||||
|
media_id="https://www.home-assistant.io/resolved.mp3",
|
||||||
|
original_media_id="media-source://given",
|
||||||
|
media_id_source="media_id",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
{"media_id": "http://example.com/bla.mp3"},
|
{"media_id": "http://example.com/bla.mp3"},
|
||||||
AssistSatelliteAnnouncement("", "http://example.com/bla.mp3", "url"),
|
AssistSatelliteAnnouncement(
|
||||||
|
message="",
|
||||||
|
media_id="http://example.com/bla.mp3",
|
||||||
|
original_media_id="http://example.com/bla.mp3",
|
||||||
|
media_id_source="url",
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user