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
2 changed files with 25 additions and 4 deletions
|
@ -70,8 +70,8 @@ class TTSMediaSource(MediaSource):
|
|||
) -> BrowseMediaSource:
|
||||
"""Return media."""
|
||||
if item.identifier:
|
||||
provider, _, _ = item.identifier.partition("?")
|
||||
return self._provider_item(provider)
|
||||
provider, _, params = item.identifier.partition("?")
|
||||
return self._provider_item(provider, params)
|
||||
|
||||
# Root. List providers.
|
||||
manager: SpeechManager = self.hass.data[DOMAIN]
|
||||
|
@ -89,7 +89,9 @@ class TTSMediaSource(MediaSource):
|
|||
)
|
||||
|
||||
@callback
|
||||
def _provider_item(self, provider_domain: str) -> BrowseMediaSource:
|
||||
def _provider_item(
|
||||
self, provider_domain: str, params: str | None = None
|
||||
) -> BrowseMediaSource:
|
||||
"""Return provider item."""
|
||||
manager: SpeechManager = self.hass.data[DOMAIN]
|
||||
provider = manager.providers.get(provider_domain)
|
||||
|
@ -97,9 +99,14 @@ class TTSMediaSource(MediaSource):
|
|||
if provider is None:
|
||||
raise BrowseError("Unknown provider")
|
||||
|
||||
if params:
|
||||
params = f"?{params}"
|
||||
else:
|
||||
params = ""
|
||||
|
||||
return BrowseMediaSource(
|
||||
domain=DOMAIN,
|
||||
identifier=provider_domain,
|
||||
identifier=f"{provider_domain}{params}",
|
||||
media_class=MEDIA_CLASS_APP,
|
||||
media_content_type="provider",
|
||||
title=provider.name,
|
||||
|
|
|
@ -42,6 +42,20 @@ async def test_browsing(hass):
|
|||
hass, item.children[0].media_content_id
|
||||
)
|
||||
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.children is None
|
||||
assert item_child.can_play is False
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue