From: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 13:53:53 +0000 (+0100) Subject: Bump pychromecast from 13.1.0 to 14.0.0 (#1122) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=14cc158b9f52e87ddbfe0962f45d8fa15966ac68;p=music-assistant-server.git Bump pychromecast from 13.1.0 to 14.0.0 (#1122) --- diff --git a/music_assistant/server/providers/chromecast/__init__.py b/music_assistant/server/providers/chromecast/__init__.py index 0c849de7..a0c4d87b 100644 --- a/music_assistant/server/providers/chromecast/__init__.py +++ b/music_assistant/server/providers/chromecast/__init__.py @@ -241,9 +241,7 @@ class ChromecastProvider(PlayerProvider): ) -> None: """Handle PLAY MEDIA on given player.""" castplayer = self.castplayers[player_id] - use_flow_mode = await self.mass.config.get_player_config_value( - player_id, CONF_FLOW_MODE - ) or await self.mass.config.get_player_config_value(player_id, CONF_CROSSFADE) + use_flow_mode = await self.mass.config.get_player_config_value(player_id, CONF_FLOW_MODE) url = self.mass.streams.resolve_stream_url( player_id, queue_item=queue_item, @@ -254,12 +252,13 @@ class ChromecastProvider(PlayerProvider): "type": "LOAD", "media": self._create_cc_media_item(queue_item, url), } + # make sure that the media controller app is launched app_id = ALT_APP_ID if use_flow_mode else DEFAULT_APP_ID await self._launch_app(castplayer, app_id) # send queue info to the CC media_controller = castplayer.cc.media_controller - await asyncio.to_thread(media_controller.send_message, queuedata, True) + await asyncio.to_thread(media_controller.send_message, data=queuedata, inc_session_id=True) async def enqueue_next_queue_item(self, player_id: str, queue_item: QueueItem) -> None: """Handle enqueuing of the next queue item on the player.""" @@ -303,7 +302,7 @@ class ChromecastProvider(PlayerProvider): } media_controller = castplayer.cc.media_controller queuedata["mediaSessionId"] = media_controller.status.media_session_id - self.mass.create_task(media_controller.send_message, queuedata, inc_session_id=True) + self.mass.create_task(media_controller.send_message, data=queuedata, inc_session_id=True) self.logger.debug( "Enqued next track (%s) to player %s", queue_item.name if queue_item else url, @@ -559,7 +558,7 @@ class ChromecastProvider(PlayerProvider): if castplayer.cc.app_id == app_id: return # already active - def launched_callback() -> None: + def launched_callback(success: bool, response: dict[str, Any] | None) -> None: self.mass.loop.call_soon_threadsafe(event.set) def launch() -> None: @@ -657,7 +656,9 @@ class ChromecastProvider(PlayerProvider): "metadata": cc_item["metadata"], }, } - self.mass.create_task(media_controller.send_message, queuedata, True) + self.mass.create_task( + media_controller.send_message, data=queuedata, inc_session_id=True + ) if len(getattr(media_controller.status, "items", [])) < 2: # In flow mode, all queue tracks are sent to the player as continuous stream. @@ -686,4 +687,4 @@ class ChromecastProvider(PlayerProvider): } ], } - self.mass.create_task(media_controller.send_message, msg, inc_session_id=True) + self.mass.create_task(media_controller.send_message, data=msg, inc_session_id=True) diff --git a/music_assistant/server/providers/chromecast/helpers.py b/music_assistant/server/providers/chromecast/helpers.py index d49a38a6..ae8724ef 100644 --- a/music_assistant/server/providers/chromecast/helpers.py +++ b/music_assistant/server/providers/chromecast/helpers.py @@ -3,7 +3,7 @@ from __future__ import annotations import urllib.error -from dataclasses import dataclass +from dataclasses import asdict, dataclass from typing import TYPE_CHECKING, Self from uuid import UUID @@ -50,11 +50,11 @@ class ChromecastInfo: @classmethod def from_cast_info(cls: Self, cast_info: CastInfo) -> Self: """Instantiate ChromecastInfo from CastInfo.""" - return cls(**cast_info._asdict()) + return cls(**asdict(cast_info)) def update(self, cast_info: CastInfo) -> None: """Update ChromecastInfo from CastInfo.""" - for key, value in cast_info._asdict().items(): + for key, value in asdict(cast_info).items(): if not value: continue setattr(self, key, value) @@ -205,9 +205,11 @@ class CastStatusListener: "%s got new media_status for group: %s", self.castplayer.player.display_name, group_uuid ) - def load_media_failed(self, item, error_code) -> None: + def load_media_failed(self, queue_item_id, error_code) -> None: """Call when media failed to load.""" - self.prov.logger.warning("Load media failed: %s - error code: %s", item, error_code) + self.prov.logger.warning( + "Load media failed: %s - error code: %s", queue_item_id, error_code + ) def invalidate(self) -> None: """ diff --git a/music_assistant/server/providers/chromecast/manifest.json b/music_assistant/server/providers/chromecast/manifest.json index f5e843ac..2555ef2f 100644 --- a/music_assistant/server/providers/chromecast/manifest.json +++ b/music_assistant/server/providers/chromecast/manifest.json @@ -7,7 +7,7 @@ "@music-assistant" ], "requirements": [ - "PyChromecast==13.1.0" + "PyChromecast==14.0.1" ], "documentation": "https://music-assistant.io/player-support/google-cast/", "multi_instance": false, diff --git a/requirements_all.txt b/requirements_all.txt index c85e39a2..76d6c573 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -26,7 +26,7 @@ pillow==10.2.0 plexapi==4.15.9 py-opensonic>=5.0.5 pyatv==0.14.5 -PyChromecast==13.1.0 +PyChromecast==14.0.1 pycryptodome==3.20.0 python-fullykiosk==0.0.12 python-slugify==8.0.4