cool down errors in log, send stop command on power off
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Sat, 19 Sep 2020 15:38:34 +0000 (17:38 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Sat, 19 Sep 2020 15:38:34 +0000 (17:38 +0200)
music_assistant/constants.py
music_assistant/player_manager.py
music_assistant/web.py

index df4939ba56f538e32b4be2a9317620822c3d5536..941071d984813d6bea51ec80eca5b452d4a3ed4f 100755 (executable)
@@ -1,6 +1,6 @@
 """All constants for Music Assistant."""
 
-__version__ = "0.0.37"
+__version__ = "0.0.38"
 REQUIRED_PYTHON_VER = "3.7"
 
 CONF_USERNAME = "username"
index 207b8f529e03c839a0eafd05de8dcb89c44396cb..bee1022d1abd63f805656a7b9b8bb3d94114e8ca 100755 (executable)
@@ -428,6 +428,9 @@ class PlayerManager:
         player = self.get_player(player_id)
         if not player:
             return
+        # send stop if player is playing
+        if player.active_queue == player_id:
+            await self.async_cmd_stop(player_id)
         player_config = self.mass.config.player_settings[player.player_id]
         # turn off player
         await self.get_player_provider(player_id).async_cmd_power_off(player_id)
index 14e7becbb4b459d6613bcd57bb8b66be50c5a553..43ff0a743d84e0d1a47051785cf35eee3245dd9d 100755 (executable)
@@ -690,7 +690,10 @@ class Web:
             # callback for internal events
             async def async_send_message(msg, msg_details=None):
                 ws_msg = {"message": msg, "message_details": msg_details}
-                await ws_response.send_json(ws_msg, dumps=json_serializer)
+                try:
+                    await ws_response.send_json(ws_msg, dumps=json_serializer)
+                except AssertionError:
+                    LOGGER.debug("trying to send message to ws while disconnected")
 
             # process incoming messages
             async for msg in ws_response:
@@ -744,13 +747,11 @@ class Web:
                 else:
                     # simply echo the message on the eventbus
                     self.mass.signal_event(msg, msg_details)
-
-        except (AssertionError, asyncio.CancelledError) as exc:
-            LOGGER.warning("Websocket disconnected - %s", str(exc))
+        except (AssertionError, asyncio.CancelledError):
+            LOGGER.debug("Websocket disconnected")
         finally:
-            for callback in remove_callbacks:
-                callback()
-        LOGGER.debug("websocket connection closed")
+            for remove_callback in remove_callbacks:
+                remove_callback()
         return ws_response
 
     @require_local_subnet