From 15ad48a7a0be1adcb599ddcb0a0703241664b443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Sandstr=C3=83om?= Date: Wed, 10 Feb 2016 19:48:41 +0000 Subject: [PATCH 1/2] kodi thumbnails --- homeassistant/components/media_player/kodi.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/media_player/kodi.py b/homeassistant/components/media_player/kodi.py index 19893abe519..c355c6e1fab 100644 --- a/homeassistant/components/media_player/kodi.py +++ b/homeassistant/components/media_player/kodi.py @@ -35,12 +35,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): ]) -def _get_image_url(kodi_url): - """ Helper function that parses the thumbnail URLs used by Kodi. """ - url_components = urllib.parse.urlparse(kodi_url) - if url_components.scheme == 'image': - return urllib.parse.unquote(url_components.netloc) class KodiDevice(MediaPlayerDevice): @@ -155,7 +150,17 @@ class KodiDevice(MediaPlayerDevice): def media_image_url(self): """ Image url of current playing media. """ if self._item is not None: - return _get_image_url(self._item['thumbnail']) + return self._get_image_url() + + def _get_image_url(self): + """ Helper function that parses the thumbnail URLs used by Kodi. """ + url_components = urllib.parse.urlparse(self._item['thumbnail']) + + if url_components.scheme == 'image': + return\ + self._url.split('/jsonrpc')[0] +\ + "/image/" +\ + urllib.parse.quote_plus(self._item['thumbnail']) @property def media_title(self): From aafd36d2ce7372860d04d1e90d92217e3e431c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Sandstr=C3=83om?= Date: Thu, 11 Feb 2016 21:07:47 +0000 Subject: [PATCH 2/2] change url to host --- homeassistant/components/media_player/kodi.py | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/media_player/kodi.py b/homeassistant/components/media_player/kodi.py index c355c6e1fab..8b8d78fcae3 100644 --- a/homeassistant/components/media_player/kodi.py +++ b/homeassistant/components/media_player/kodi.py @@ -25,19 +25,22 @@ SUPPORT_KODI = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ def setup_platform(hass, config, add_devices, discovery_info=None): """ Sets up the kodi platform. """ + url = '{}:{}'.format(config.get('host'), config.get('port', '8080')) + + jsonrpc_url = config.get('url') # deprecated + if jsonrpc_url: + url = jsonrpc_url.rstrip('/jsonrpc') + add_devices([ KodiDevice( config.get('name', 'Kodi'), - config.get('url'), + url, auth=( config.get('user', ''), config.get('password', ''))), ]) - - - class KodiDevice(MediaPlayerDevice): """ Represents a XBMC/Kodi device. """ @@ -47,12 +50,13 @@ class KodiDevice(MediaPlayerDevice): import jsonrpc_requests self._name = name self._url = url - self._server = jsonrpc_requests.Server(url, auth=auth) + self._server = jsonrpc_requests.Server( + '{}/jsonrpc'.format(self._url), + auth=auth) self._players = None self._properties = None self._item = None self._app_properties = None - self.update() @property @@ -155,12 +159,11 @@ class KodiDevice(MediaPlayerDevice): def _get_image_url(self): """ Helper function that parses the thumbnail URLs used by Kodi. """ url_components = urllib.parse.urlparse(self._item['thumbnail']) - + if url_components.scheme == 'image': - return\ - self._url.split('/jsonrpc')[0] +\ - "/image/" +\ - urllib.parse.quote_plus(self._item['thumbnail']) + return '{}/image/{}'.format( + self._url, + urllib.parse.quote_plus(self._item['thumbnail'])) @property def media_title(self):