From ebf1fab72442303bbcbc84c03a45e5060cd88022 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Sun, 30 Jun 2019 00:28:32 +0200 Subject: [PATCH] minor fixes --- music_assistant/models.py | 4 ++++ .../modules/playerproviders/chromecast.py | 22 ++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/music_assistant/models.py b/music_assistant/models.py index 1de7e006..7492af1f 100755 --- a/music_assistant/models.py +++ b/music_assistant/models.py @@ -210,6 +210,8 @@ class MusicProvider(): lookup_albums = await self.get_artist_albums(artist_details.item_id) for lookup_album in lookup_albums[:5]: lookup_album_upc = None + if not lookup_album: + continue for item in lookup_album.external_ids: if item.get("upc"): lookup_album_upc = item["upc"] @@ -222,6 +224,8 @@ class MusicProvider(): if not musicbrainz_id: lookup_tracks = await self.get_artist_toptracks(artist_details.item_id) for lookup_track in lookup_tracks: + if not lookup_track: + continue lookup_track_isrc = None for item in lookup_track.external_ids: if item.get("isrc"): diff --git a/music_assistant/modules/playerproviders/chromecast.py b/music_assistant/modules/playerproviders/chromecast.py index 00776259..d3ffab10 100644 --- a/music_assistant/modules/playerproviders/chromecast.py +++ b/music_assistant/modules/playerproviders/chromecast.py @@ -42,7 +42,7 @@ def config_entries(): ] class ChromecastProvider(PlayerProvider): - ''' support for Home Assistant ''' + ''' support for ChromeCast Audio ''' def __init__(self, mass): self.prov_id = 'chromecast' @@ -64,7 +64,10 @@ class ChromecastProvider(PlayerProvider): ### Provider specific implementation ##### async def player_config_entries(self): - ''' get the player config entries for this provider (list with key/value pairs)''' + ''' + get the player config entries for this provider + (list with key/value pairs) + ''' return [ ("crossfade_duration", 0, "crossfade_duration"), ] @@ -135,7 +138,7 @@ class ChromecastProvider(PlayerProvider): # overwrite queue with new items self._player_queue[player_id] = media_items if enable_crossfade and not is_radio: - await self.__play_stream_queue(player_id, cur_queue_index) + await self.__play_stream_queue(player_id, 0) else: await self.__queue_load(player_id, self._player_queue[player_id], 0) elif queue_opt == 'play': @@ -399,7 +402,6 @@ class ChromecastProvider(PlayerProvider): from pychromecast.discovery import start_discovery, stop_discovery def internal_callback(name): """Called when zeroconf has discovered a new chromecast.""" - #self.__chromecast_discovered(listener.services[name]) asyncio.run_coroutine_threadsafe( self.__chromecast_discovered(listener.services[name]), self.mass.event_loop) def internal_stop(): @@ -473,7 +475,8 @@ class StatusListener: self.__handle_player_state = callback self.loop = loop def new_cast_status(self, status): - asyncio.run_coroutine_threadsafe(self.__handle_player_state(self.chromecast, caststatus=status), self.loop) + asyncio.run_coroutine_threadsafe( + self.__handle_player_state(self.chromecast, caststatus=status), self.loop) class StatusMediaListener: def __init__(self, chromecast, callback, loop): @@ -481,7 +484,8 @@ class StatusMediaListener: self.__handle_player_state = callback self.loop = loop def new_media_status(self, status): - asyncio.run_coroutine_threadsafe(self.__handle_player_state(self.chromecast, mediastatus=status), self.loop) + asyncio.run_coroutine_threadsafe( + self.__handle_player_state(self.chromecast, mediastatus=status), self.loop) class MZConnListener: def __init__(self, mz): @@ -499,11 +503,13 @@ class MZListener: def multizone_member_added(self, uuid): asyncio.run_coroutine_threadsafe( - self.__handle_group_members_update(self._mz, added_player=str(uuid)), self._loop) + self.__handle_group_members_update( + self._mz, added_player=str(uuid)), self._loop) def multizone_member_removed(self, uuid): asyncio.run_coroutine_threadsafe( - self.__handle_group_members_update(self._mz, removed_player=str(uuid)), self._loop) + self.__handle_group_members_update( + self._mz, removed_player=str(uuid)), self._loop) def multizone_status_received(self): asyncio.run_coroutine_threadsafe( -- 2.34.1