From: marcelveldt Date: Thu, 17 Oct 2019 22:18:30 +0000 (+0200) Subject: fix for CC and qobuz again X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=4427d8c522616a2a1d0bcd4804e5e1d58abb531e;p=music-assistant-server.git fix for CC and qobuz again --- diff --git a/music_assistant/musicproviders/qobuz.py b/music_assistant/musicproviders/qobuz.py index 7d98cd67..af06c70b 100644 --- a/music_assistant/musicproviders/qobuz.py +++ b/music_assistant/musicproviders/qobuz.py @@ -277,6 +277,8 @@ class QobuzProvider(MusicProvider): async def mass_event(self, msg, msg_details): ''' received event from mass ''' + if not self.__user_auth_info: + return # TODO: need to figure out if the streamed track is purchased if msg == EVENT_PLAYBACK_STARTED and msg_details.provider == self.prov_id: # report streaming started to qobuz @@ -549,10 +551,11 @@ class QobuzProvider(MusicProvider): params["app_id"] = get_app_var(0) params["user_auth_token"] = await self.__auth_token() async with self.http_session.post(url, params=params, json=data) as response: - result = await response.json() - if not result or 'error' in result: - LOGGER.error(url) + try: + result = await response.json() + return result + except Exception as exc: + LOGGER.error(exc) + LOGGER.debug(url) LOGGER.debug(params) LOGGER.debug(result) - result = None - return result \ No newline at end of file diff --git a/music_assistant/playerproviders/chromecast.py b/music_assistant/playerproviders/chromecast.py index a0e57463..44c4bc77 100644 --- a/music_assistant/playerproviders/chromecast.py +++ b/music_assistant/playerproviders/chromecast.py @@ -178,23 +178,12 @@ class ChromecastPlayer(Player): else: send_queue() - def __update_group_members(self): - ''' update group members ''' - if not self.mz: - return - try: - self.mz.update_members() - except Exception as exc: - LOGGER.exception(exc) - async def handle_player_state(self, caststatus=None, mediastatus=None, connection_status=None): ''' handle a player state message from the socket ''' # handle connection status if connection_status: - if self.mz and connection_status.status == CONNECTION_STATUS_CONNECTED: - self.mass.event_loop.call_soon_threadsafe(self.__update_group_members) - elif connection_status.status == CONNECTION_STATUS_DISCONNECTED: + if connection_status.status == CONNECTION_STATUS_DISCONNECTED: # schedule a new scan which will handle group parent changes self.mass.event_loop.create_task( self.mass.players.providers[self.player_provider].start_chromecast_discovery()) @@ -325,7 +314,8 @@ class ChromecastProvider(PlayerProvider): if chromecast.cast_type == 'group': player.is_group = True mz = MultizoneController(chromecast.uuid) - mz.register_listener(MZListener(mz, self.__handle_group_members_update, self.mass.event_loop)) + mz.register_listener(MZListener(mz, + self.__handle_group_members_update, self.mass.event_loop)) chromecast.register_handler(mz) player.mz = mz chromecast.register_connection_listener(status_listener) @@ -333,6 +323,8 @@ class ChromecastProvider(PlayerProvider): chromecast.media_controller.register_status_listener(status_listener) player.cc.wait() await self.add_player(player) + if player.is_group: + player.mz.update_members() def chunks(l, n):