From 710e2f4bed3bc265c53335f29ffdfa564c02df00 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 17 May 2022 14:34:36 +0200 Subject: [PATCH] Fix URI parsing in play_media call (#317) --- music_assistant/helpers/audio.py | 2 +- music_assistant/models/player_queue.py | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/music_assistant/helpers/audio.py b/music_assistant/helpers/audio.py index 8a7bb946..0d5c0836 100644 --- a/music_assistant/helpers/audio.py +++ b/music_assistant/helpers/audio.py @@ -168,7 +168,7 @@ async def analyze_audio(mass: MusicAssistant, streamdetails: StreamDetails) -> N stdout, stderr = await proc.communicate(audio_data or None) try: loudness = float(stdout.decode().strip()) - except ValueError: # pylint: disable=broad-except + except (ValueError, AttributeError): LOGGER.warning( "Could not determine integrated loudness of %s/%s - %s %s", streamdetails.provider.value, diff --git a/music_assistant/models/player_queue.py b/music_assistant/models/player_queue.py index 62cb1820..210f21ad 100644 --- a/music_assistant/models/player_queue.py +++ b/music_assistant/models/player_queue.py @@ -398,13 +398,16 @@ class PlayerQueue: uris = [uris] queue_items = [] for uri in uris: - if uri.startswith("http"): - # a plain url was provided - queue_items.append(QueueItem(uri)) - continue - media_item = await self.mass.music.get_item_by_uri(uri) - if not media_item: - raise FileNotFoundError(f"Invalid uri: {uri}") + # parse provided uri into a MA MediaItem or Basis QueueItem from URL + try: + media_item = await self.mass.music.get_item_by_uri(uri) + except MediaNotFoundError as err: + if uri.startswith("http"): + # a plain url was provided + queue_items.append(QueueItem(uri)) + continue + raise MediaNotFoundError(f"Invalid uri: {uri}") from err + # collect tracks to play if media_item.media_type == MediaType.ARTIST: tracks = await self.mass.music.artists.toptracks( -- 2.34.1