mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 16:27:08 +00:00
Keep TTS media browser params in identifier (#66663)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
This commit is contained in:
parent
39cf250a8e
commit
a9390908ea
@ -70,8 +70,8 @@ class TTSMediaSource(MediaSource):
|
|||||||
) -> BrowseMediaSource:
|
) -> BrowseMediaSource:
|
||||||
"""Return media."""
|
"""Return media."""
|
||||||
if item.identifier:
|
if item.identifier:
|
||||||
provider, _, _ = item.identifier.partition("?")
|
provider, _, params = item.identifier.partition("?")
|
||||||
return self._provider_item(provider)
|
return self._provider_item(provider, params)
|
||||||
|
|
||||||
# Root. List providers.
|
# Root. List providers.
|
||||||
manager: SpeechManager = self.hass.data[DOMAIN]
|
manager: SpeechManager = self.hass.data[DOMAIN]
|
||||||
@ -89,7 +89,9 @@ class TTSMediaSource(MediaSource):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _provider_item(self, provider_domain: str) -> BrowseMediaSource:
|
def _provider_item(
|
||||||
|
self, provider_domain: str, params: str | None = None
|
||||||
|
) -> BrowseMediaSource:
|
||||||
"""Return provider item."""
|
"""Return provider item."""
|
||||||
manager: SpeechManager = self.hass.data[DOMAIN]
|
manager: SpeechManager = self.hass.data[DOMAIN]
|
||||||
provider = manager.providers.get(provider_domain)
|
provider = manager.providers.get(provider_domain)
|
||||||
@ -97,9 +99,14 @@ class TTSMediaSource(MediaSource):
|
|||||||
if provider is None:
|
if provider is None:
|
||||||
raise BrowseError("Unknown provider")
|
raise BrowseError("Unknown provider")
|
||||||
|
|
||||||
|
if params:
|
||||||
|
params = f"?{params}"
|
||||||
|
else:
|
||||||
|
params = ""
|
||||||
|
|
||||||
return BrowseMediaSource(
|
return BrowseMediaSource(
|
||||||
domain=DOMAIN,
|
domain=DOMAIN,
|
||||||
identifier=provider_domain,
|
identifier=f"{provider_domain}{params}",
|
||||||
media_class=MEDIA_CLASS_APP,
|
media_class=MEDIA_CLASS_APP,
|
||||||
media_content_type="provider",
|
media_content_type="provider",
|
||||||
title=provider.name,
|
title=provider.name,
|
||||||
|
@ -42,6 +42,20 @@ async def test_browsing(hass):
|
|||||||
hass, item.children[0].media_content_id
|
hass, item.children[0].media_content_id
|
||||||
)
|
)
|
||||||
assert item_child is not None
|
assert item_child is not None
|
||||||
|
assert item_child.media_content_id == item.children[0].media_content_id
|
||||||
|
assert item_child.title == "Demo"
|
||||||
|
assert item_child.children is None
|
||||||
|
assert item_child.can_play is False
|
||||||
|
assert item_child.can_expand is True
|
||||||
|
|
||||||
|
item_child = await media_source.async_browse_media(
|
||||||
|
hass, item.children[0].media_content_id + "?message=bla"
|
||||||
|
)
|
||||||
|
assert item_child is not None
|
||||||
|
assert (
|
||||||
|
item_child.media_content_id
|
||||||
|
== item.children[0].media_content_id + "?message=bla"
|
||||||
|
)
|
||||||
assert item_child.title == "Demo"
|
assert item_child.title == "Demo"
|
||||||
assert item_child.children is None
|
assert item_child.children is None
|
||||||
assert item_child.can_play is False
|
assert item_child.can_play is False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user