mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 07:07:28 +00:00
Clean up when TTS base URL is applied (#70835)
This commit is contained in:
parent
c4e85b78ba
commit
56000c0378
@ -203,7 +203,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||||||
language = service.data.get(ATTR_LANGUAGE)
|
language = service.data.get(ATTR_LANGUAGE)
|
||||||
options = service.data.get(ATTR_OPTIONS)
|
options = service.data.get(ATTR_OPTIONS)
|
||||||
|
|
||||||
if tts.base_url is None or tts.base_url == get_url(hass):
|
|
||||||
tts.process_options(p_type, language, options)
|
tts.process_options(p_type, language, options)
|
||||||
params = {
|
params = {
|
||||||
"message": message,
|
"message": message,
|
||||||
@ -229,32 +228,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||||||
blocking=True,
|
blocking=True,
|
||||||
context=service.context,
|
context=service.context,
|
||||||
)
|
)
|
||||||
return
|
|
||||||
|
|
||||||
try:
|
|
||||||
url = await tts.async_get_url_path(
|
|
||||||
p_type, message, cache=cache, language=language, options=options
|
|
||||||
)
|
|
||||||
except HomeAssistantError as err:
|
|
||||||
_LOGGER.error("Error on init TTS: %s", err)
|
|
||||||
return
|
|
||||||
|
|
||||||
base = tts.base_url or get_url(hass)
|
|
||||||
url = base + url
|
|
||||||
|
|
||||||
data = {
|
|
||||||
ATTR_MEDIA_CONTENT_ID: url,
|
|
||||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
|
||||||
ATTR_ENTITY_ID: entity_ids,
|
|
||||||
}
|
|
||||||
|
|
||||||
await hass.services.async_call(
|
|
||||||
DOMAIN_MP,
|
|
||||||
SERVICE_PLAY_MEDIA,
|
|
||||||
data,
|
|
||||||
blocking=True,
|
|
||||||
context=service.context,
|
|
||||||
)
|
|
||||||
|
|
||||||
service_name = p_config.get(CONF_SERVICE_NAME, f"{p_type}_{SERVICE_SAY}")
|
service_name = p_config.get(CONF_SERVICE_NAME, f"{p_type}_{SERVICE_SAY}")
|
||||||
hass.services.async_register(
|
hass.services.async_register(
|
||||||
|
@ -17,6 +17,7 @@ from homeassistant.components.media_source.models import (
|
|||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
|
from homeassistant.helpers.network import get_url
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
|
|
||||||
@ -64,6 +65,9 @@ class TTSMediaSource(MediaSource):
|
|||||||
|
|
||||||
mime_type = mimetypes.guess_type(url)[0] or "audio/mpeg"
|
mime_type = mimetypes.guess_type(url)[0] or "audio/mpeg"
|
||||||
|
|
||||||
|
if manager.base_url and manager.base_url != get_url(self.hass):
|
||||||
|
url = f"{manager.base_url}{url}"
|
||||||
|
|
||||||
return PlayMedia(url, mime_type)
|
return PlayMedia(url, mime_type)
|
||||||
|
|
||||||
async def async_browse_media(
|
async def async_browse_media(
|
||||||
|
@ -366,7 +366,8 @@ async def test_setup_component_and_test_service_with_base_url_set(hass):
|
|||||||
assert len(calls) == 1
|
assert len(calls) == 1
|
||||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||||
assert (
|
assert (
|
||||||
calls[0].data[ATTR_MEDIA_CONTENT_ID] == "http://fnord"
|
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||||
|
== "http://fnord"
|
||||||
"/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491"
|
"/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491"
|
||||||
"_en_-_demo.mp3"
|
"_en_-_demo.mp3"
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user