From 5ffc8f5c4d6306d1c86c83c0e1fbb62884dbbc84 Mon Sep 17 00:00:00 2001 From: azogue Date: Fri, 20 Jul 2018 13:13:04 +0200 Subject: [PATCH 1/2] fix aiohttp InvalidURL exception when fetching media player image The first call for the HA proxy (`/api/media_player_proxy/media_player.kodi?token=...&cache=...`) is receiving relative urls that are failing, this is a simple fix to precede the base_url when hostname is None. --- homeassistant/components/media_player/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index d314dec65ea96..1c643ffccc2db 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -16,6 +16,7 @@ from aiohttp import web from aiohttp.hdrs import CONTENT_TYPE, CACHE_CONTROL import async_timeout +from urllib.parse import urlparse import voluptuous as vol from homeassistant.core import callback @@ -956,6 +957,9 @@ async def _async_fetch_image(hass, url): cache_images = ENTITY_IMAGE_CACHE[CACHE_IMAGES] cache_maxsize = ENTITY_IMAGE_CACHE[CACHE_MAXSIZE] + if urlparse(url).hostname is None: + url = hass.config.api.base_url + url + if url not in cache_images: cache_images[url] = {CACHE_LOCK: asyncio.Lock(loop=hass.loop)} From aa7dcc7710876488737763e707506cfbcdbd4848 Mon Sep 17 00:00:00 2001 From: azogue Date: Fri, 20 Jul 2018 13:20:06 +0200 Subject: [PATCH 2/2] fix import location and sort stdlib imports --- homeassistant/components/media_player/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index 1c643ffccc2db..c475291227ac6 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -6,17 +6,17 @@ """ import asyncio import base64 +import collections from datetime import timedelta import functools as ft -import collections import hashlib import logging from random import SystemRandom +from urllib.parse import urlparse from aiohttp import web from aiohttp.hdrs import CONTENT_TYPE, CACHE_CONTROL import async_timeout -from urllib.parse import urlparse import voluptuous as vol from homeassistant.core import callback