From 54f65ae87d9d0c8bb4d61d429dc323debf831b70 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 20 Jan 2016 10:57:39 +0100 Subject: [PATCH 1/2] 1) artwork_url might be a relative url (such as /imageproxy). in that case, join it with the base url. note: urllib.parse.urljoin will handle case when the artwork url is absolute. 2) artwork would not be replaced in the user interface because the url did not change between tracks (http://.../cover.jpg). solved by appending internal hash of the media title to the url to force reload --- .../components/media_player/squeezebox.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/media_player/squeezebox.py b/homeassistant/components/media_player/squeezebox.py index 4fd13e8da42..871afe3c0bb 100644 --- a/homeassistant/components/media_player/squeezebox.py +++ b/homeassistant/components/media_player/squeezebox.py @@ -201,11 +201,18 @@ class SqueezeBoxDevice(MediaPlayerDevice): def media_image_url(self): """ Image url of current playing media. """ if 'artwork_url' in self._status: - return self._status['artwork_url'] - return ('http://{server}:{port}/music/current/cover.jpg?' - 'player={player}').format(server=self._lms.host, - port=self._lms.http_port, - player=self._id) + media_url = self._status['artwork_url'] + else: + media_url = ('/music/current/cover.jpg?' + 'player={player}&' + 'nocache={nocache}').format( + player=self._id, + nocache=hash(self.media_title)) + + base_url = 'http://{server}:{port}/'.format(server=self._lms.host, + port=self._lms.http_port) + + return urllib.parse.urljoin(base_url, media_url) @property def media_title(self): From 58ef69b95db8056f12752ea125bc6b59b17ebb9a Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 20 Jan 2016 16:31:51 +0100 Subject: [PATCH 2/2] less hacky way of getting unique cover art --- homeassistant/components/media_player/squeezebox.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/media_player/squeezebox.py b/homeassistant/components/media_player/squeezebox.py index 871afe3c0bb..0494b29fedb 100644 --- a/homeassistant/components/media_player/squeezebox.py +++ b/homeassistant/components/media_player/squeezebox.py @@ -203,14 +203,12 @@ class SqueezeBoxDevice(MediaPlayerDevice): if 'artwork_url' in self._status: media_url = self._status['artwork_url'] else: - media_url = ('/music/current/cover.jpg?' - 'player={player}&' - 'nocache={nocache}').format( - player=self._id, - nocache=hash(self.media_title)) + media_url = ('/music/{track_id}/cover.jpg').format( + track_id=self._status["id"]) - base_url = 'http://{server}:{port}/'.format(server=self._lms.host, - port=self._lms.http_port) + base_url = 'http://{server}:{port}/'.format( + server=self._lms.host, + port=self._lms.http_port) return urllib.parse.urljoin(base_url, media_url)