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
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
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())
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)
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):