Skip to content

Commit

Permalink
Merge pull request #2737 from alandtse/dev
Browse files Browse the repository at this point in the history
fix: clarify error message for music streaming (#2736)
  • Loading branch information
alandtse authored Dec 10, 2024
2 parents 7c48223 + 95632e6 commit 9f57bbd
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 17 deletions.
8 changes: 8 additions & 0 deletions custom_components/alexa_media/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,14 @@
ATTR_MESSAGE = "message"
ATTR_EMAIL = "email"
ATTR_NUM_ENTRIES = "entries"
STREAMING_ERROR_MESSAGE = (
"Sorry folks! Amazon doesn't allow streaming music like this. "
"Please take it up with them!"
)
PUBLIC_URL_ERROR_MESSAGE = (
"To send TTS, please set the public URL in integration configuration."
)
ANNOUNCE_ERROR_MESSAGE = "To send TTS, please set Announce=true."
STARTUP = f"""
-------------------------------------------------------------------
{DOMAIN}
Expand Down
38 changes: 21 additions & 17 deletions custom_components/alexa_media/media_player.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,14 @@
)
from .alexa_media import AlexaMedia
from .const import (
ANNOUNCE_ERROR_MESSAGE,
DEPENDENT_ALEXA_COMPONENTS,
MIN_TIME_BETWEEN_FORCED_SCANS,
MIN_TIME_BETWEEN_SCANS,
MODEL_IDS,
PLAY_SCAN_INTERVAL,
PUBLIC_URL_ERROR_MESSAGE,
STREAMING_ERROR_MESSAGE,
UPLOAD_PATH,
)
from .helpers import _catch_login_errors, add_devices
Expand Down Expand Up @@ -1375,7 +1378,9 @@ async def async_send_dropin_notification(self, message, **kwargs):
)

@_catch_login_errors
async def async_play_tts_cloud_say(self, public_url, media_id, **kwargs):
async def async_play_tts_cloud_say(
self, media_type, public_url, media_id, **kwargs
):
file_name = media_id
if media_source.is_media_source_id(media_id):
media = await media_source.async_resolve_media(
Expand All @@ -1384,6 +1389,12 @@ async def async_play_tts_cloud_say(self, public_url, media_id, **kwargs):
file_name = media.url[media.url.rindex("/") : media.url.rindex(".")]
media_id = async_process_play_media_url(self.hass, media.url)

if media_type == "music":
# Log and notify for Amazon restriction on streaming music
_LOGGER.warning(STREAMING_ERROR_MESSAGE)
await self.async_send_tts(STREAMING_ERROR_MESSAGE)
return

if kwargs.get(ATTR_MEDIA_ANNOUNCE):
input_file_path = self.hass.config.path(
f"{UPLOAD_PATH}{file_name}_input.mp3"
Expand Down Expand Up @@ -1430,12 +1441,8 @@ async def async_play_tts_cloud_say(self, public_url, media_id, **kwargs):
f"<audio src='{public_url}local/alexa_tts{output_file_name}' />"
)
else:
await self.async_send_tts(
"To send TTS, please set Announce=true. Music can't be played this way."
)
_LOGGER.warning(
"To send TTS, please set Announce=true. Music can't be played this way."
)
await self.async_send_tts(ANNOUNCE_ERROR_MESSAGE)
_LOGGER.warning(ANNOUNCE_ERROR_MESSAGE)

@_catch_login_errors
async def async_play_media(self, media_type, media_id, enqueue=None, **kwargs):
Expand All @@ -1448,17 +1455,14 @@ async def async_play_media(self, media_type, media_id, enqueue=None, **kwargs):
"options"
].get(CONF_PUBLIC_URL, DEFAULT_PUBLIC_URL)
if media_type == "music":
if public_url:
await self.async_play_tts_cloud_say(public_url, media_id, **kwargs)
if not public_url:
# Log and notify for missing public URL
_LOGGER.warning(PUBLIC_URL_ERROR_MESSAGE)
await self.async_send_tts(PUBLIC_URL_ERROR_MESSAGE)
else:
await self.async_send_tts(
"To send TTS, set public url in integration configuration"
)
_LOGGER.warning(
"To send TTS, set public url in integration configuration"
" Please see the alexa_media wiki for details."
"https://github.com/alandtse/alexa_media_player/wiki/Configuration%3A-Notification-Component#use-the-notifyalexa_media-service"
)
# Log and notify for Amazon restriction on streaming music
_LOGGER.warning(STREAMING_ERROR_MESSAGE)
await self.async_send_tts(STREAMING_ERROR_MESSAGE)
elif media_type == "sequence":
_LOGGER.debug(
"%s: %s:Running sequence %s with queue_delay %s",
Expand Down

0 comments on commit 9f57bbd

Please sign in to comment.