From ccb3b35694182c355179f42af2f114a2dbb166c1 Mon Sep 17 00:00:00 2001 From: Manu <4445816+tr4nt0r@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:59:28 +0100 Subject: [PATCH] Use https for media player cover images in Xbox integration (#162859) --- homeassistant/components/xbox/media_player.py | 16 +++++++--------- .../xbox/snapshots/test_media_player.ambr | 8 ++++---- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/xbox/media_player.py b/homeassistant/components/xbox/media_player.py index 27add131242..424ee58ffcf 100644 --- a/homeassistant/components/xbox/media_player.py +++ b/homeassistant/components/xbox/media_player.py @@ -30,7 +30,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from .browse_media import build_item_response from .const import DOMAIN from .coordinator import XboxConfigEntry -from .entity import XboxConsoleBaseEntity +from .entity import XboxConsoleBaseEntity, to_https _LOGGER = logging.getLogger(__name__) @@ -171,15 +171,13 @@ class XboxMediaPlayer(XboxConsoleBaseEntity, MediaPlayerEntity): @property def media_image_url(self) -> str | None: """Image url of current playing media.""" - if not (app_details := self.data.app_details) or not ( - image := _find_media_image(app_details.localized_properties[0].images) - ): - return None - url = image.uri - if url[0] == "/": - url = f"http:{url}" - return url + return ( + to_https(image.uri) + if (app_details := self.data.app_details) + and (image := _find_media_image(app_details.localized_properties[0].images)) + else None + ) @exception_handler async def async_turn_on(self) -> None: diff --git a/tests/components/xbox/snapshots/test_media_player.ambr b/tests/components/xbox/snapshots/test_media_player.ambr index d74a3f6ec4d..3a5564af8ef 100644 --- a/tests/components/xbox/snapshots/test_media_player.ambr +++ b/tests/components/xbox/snapshots/test_media_player.ambr @@ -164,8 +164,8 @@ # name: test_media_players[media_player.xone-state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'entity_picture': 'http://store-images.s-microsoft.com/image/apps.9815.9007199266246365.7dc5d343-fe4a-40c3-93dd-c78e77f97331.45eebdef-f725-4799-bbf8-9ad8391a8279', - 'entity_picture_local': '/api/media_player_proxy/media_player.xone?token=mock_token&cache=739260d7bff66329', + 'entity_picture': 'https://store-images.s-microsoft.com/image/apps.9815.9007199266246365.7dc5d343-fe4a-40c3-93dd-c78e77f97331.45eebdef-f725-4799-bbf8-9ad8391a8279', + 'entity_picture_local': '/api/media_player_proxy/media_player.xone?token=mock_token&cache=1cae983bd1c4c429', 'friendly_name': 'XONE', 'media_content_id': '9WZDNCRFJ3TJ', 'media_content_type': , @@ -220,8 +220,8 @@ # name: test_media_players[media_player.xonex-state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'entity_picture': 'http://store-images.s-microsoft.com/image/apps.9815.9007199266246365.7dc5d343-fe4a-40c3-93dd-c78e77f97331.45eebdef-f725-4799-bbf8-9ad8391a8279', - 'entity_picture_local': '/api/media_player_proxy/media_player.xonex?token=mock_token&cache=739260d7bff66329', + 'entity_picture': 'https://store-images.s-microsoft.com/image/apps.9815.9007199266246365.7dc5d343-fe4a-40c3-93dd-c78e77f97331.45eebdef-f725-4799-bbf8-9ad8391a8279', + 'entity_picture_local': '/api/media_player_proxy/media_player.xonex?token=mock_token&cache=1cae983bd1c4c429', 'friendly_name': 'XONEX', 'media_content_id': '9WZDNCRFJ3TJ', 'media_content_type': ,