From: Jc2k Date: Tue, 9 Jul 2024 15:51:28 +0000 (+0100) Subject: Add typing for fullykiosk (#1482) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=8092b5754329fdeba6de7f8976128fe940e54df2;p=music-assistant-server.git Add typing for fullykiosk (#1482) --- diff --git a/music_assistant/server/providers/fully_kiosk/__init__.py b/music_assistant/server/providers/fully_kiosk/__init__.py index d7ea3fbd..28e4a1cc 100644 --- a/music_assistant/server/providers/fully_kiosk/__init__.py +++ b/music_assistant/server/providers/fully_kiosk/__init__.py @@ -146,7 +146,8 @@ class FullyKioskProvider(PlayerProvider): def _handle_player_update(self) -> None: """Update FullyKiosk player attributes.""" player_id = self._fully.deviceInfo["deviceID"] - player = self.mass.players.get(player_id) + if not (player := self.mass.players.get(player_id)): + return player.name = self._fully.deviceInfo["deviceName"] # player.volume_level = snap_client.volume for volume_dict in self._fully.deviceInfo.get("audioVolumes", []): @@ -161,7 +162,7 @@ class FullyKioskProvider(PlayerProvider): player.available = True self.mass.players.update(player_id) - async def get_player_config_entries(self, player_id: str) -> tuple[ConfigEntry]: + async def get_player_config_entries(self, player_id: str) -> tuple[ConfigEntry, ...]: """Return all (provider/player specific) Config Entries for the given player (if any).""" base_entries = await super().get_player_config_entries(player_id) return ( @@ -174,14 +175,19 @@ class FullyKioskProvider(PlayerProvider): async def cmd_volume_set(self, player_id: str, volume_level: int) -> None: """Send VOLUME_SET command to given player.""" - player = self.mass.players.get(player_id, raise_unavailable=False) + if not (player := self.mass.players.get(player_id, raise_unavailable=False)): + return await self._fully.setAudioVolume(volume_level, AUDIOMANAGER_STREAM_MUSIC) player.volume_level = volume_level self.mass.players.update(player_id) + async def cmd_play(self, player_id: str) -> None: + """Send PLAY command to given player.""" + async def cmd_stop(self, player_id: str) -> None: """Send STOP command to given player.""" - player = self.mass.players.get(player_id, raise_unavailable=False) + if not (player := self.mass.players.get(player_id, raise_unavailable=False)): + return await self._fully.stopSound() player.state = PlayerState.IDLE self.mass.players.update(player_id) @@ -192,7 +198,8 @@ class FullyKioskProvider(PlayerProvider): media: PlayerMedia, ) -> None: """Handle PLAY MEDIA on given player.""" - player = self.mass.players.get(player_id) + if not (player := self.mass.players.get(player_id)): + return if self.mass.config.get_raw_player_config_value(player_id, CONF_ENFORCE_MP3, True): media.uri = media.uri.replace(".flac", ".mp3") await self._fully.playSound(media.uri, AUDIOMANAGER_STREAM_MUSIC) diff --git a/mypy.ini b/mypy.ini index 796e73f6..777b60a0 100644 --- a/mypy.ini +++ b/mypy.ini @@ -21,4 +21,4 @@ disallow_untyped_decorators = true disallow_untyped_defs = true warn_return_any = true warn_unreachable = true -packages=tests,music_assistant.client,music_assistant.common,music_assistant.server.providers.builtin,music_assistant.server.providers.filesystem_local,music_assistant.server.providers.filesystem_smb,music_assistant.server.providers.jellyfin,music_assistant.server.providers.plex,music_assistant.server.providers.radiobrowser,music_assistant.server.providers.test +packages=tests,music_assistant.client,music_assistant.common,music_assistant.server.providers.builtin,music_assistant.server.providers.filesystem_local,music_assistant.server.providers.filesystem_smb,music_assistant.server.providers.fully_kiosk,music_assistant.server.providers.jellyfin,music_assistant.server.providers.plex,music_assistant.server.providers.radiobrowser,music_assistant.server.providers.test