FIX: error handling

This commit is contained in:
Chris Browet 2021-07-29 13:38:13 +02:00
parent 43ad10e7f3
commit 0bd8c1a85d
2 changed files with 7 additions and 4 deletions

View file

@ -165,7 +165,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry):
hass.data[DOMAIN][config.get(CONF_URL)]["manager"] = _jelly hass.data[DOMAIN][config.get(CONF_URL)]["manager"] = _jelly
except: except:
_LOGGER.error("Cannot connect to Jellyfin server.") _LOGGER.error("Cannot connect to Jellyfin server.")
raise raise ConfigEntryNotReady
async def async_service_handler(service): async def async_service_handler(service):
"""Map services to methods""" """Map services to methods"""
@ -615,7 +615,10 @@ class JellyfinClientManager(object):
self.server_url = "".join(filter(bool, (protocol, host, port, path))) self.server_url = "".join(filter(bool, (protocol, host, port, path)))
self.jf_client = self.client_factory(self.config_entry) self.jf_client = self.client_factory(self.config_entry)
self.jf_client.auth.connect_to_address(self.server_url) status = self.jf_client.auth.connect_to_address(self.server_url)
if (status["State"] == 0): # Unavailable
return False
result = self.jf_client.auth.login(self.server_url, self.config_entry[CONF_USERNAME], self.config_entry[CONF_PASSWORD]) result = self.jf_client.auth.login(self.server_url, self.config_entry[CONF_USERNAME], self.config_entry[CONF_PASSWORD])
if "AccessToken" not in result: if "AccessToken" not in result:
return False return False

View file

@ -82,9 +82,9 @@ class UnknownMediaType(BrowseError):
"""Unknown media type.""" """Unknown media type."""
async def async_get_media_source(hass: HomeAssistant): async def async_get_media_source(hass: HomeAssistant):
"""Set up Netatmo media source.""" """Set up Jellyfin media source."""
entry = hass.config_entries.async_entries(DOMAIN)[0] entry = hass.config_entries.async_entries(DOMAIN)[0]
jelly_cm: JellyfinClientManager = hass.data[DOMAIN][entry.data[CONF_URL]]["manager"] jelly_cm: JellyfinClientManager = hass.data[DOMAIN][entry.data[CONF_URL]]["manager"] if "manager" in hass.data[DOMAIN][entry.data[CONF_URL]] else None
return JellyfinSource(hass, jelly_cm) return JellyfinSource(hass, jelly_cm)
class JellyfinSource(MediaSource): class JellyfinSource(MediaSource):