Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The Radio Browser integration."""
2 
3 from __future__ import annotations
4 
5 from aiodns.error import DNSError
6 from radios import RadioBrowser, RadioBrowserError
7 
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.const import __version__
10 from homeassistant.core import HomeAssistant
11 from homeassistant.exceptions import ConfigEntryNotReady
12 from homeassistant.helpers.aiohttp_client import async_get_clientsession
13 
14 type RadioBrowserConfigEntry = ConfigEntry[RadioBrowser]
15 
16 
18  hass: HomeAssistant, entry: RadioBrowserConfigEntry
19 ) -> bool:
20  """Set up Radio Browser from a config entry.
21 
22  This integration doesn't set up any entities, as it provides a media source
23  only.
24  """
25  session = async_get_clientsession(hass)
26  radios = RadioBrowser(session=session, user_agent=f"HomeAssistant/{__version__}")
27 
28  try:
29  await radios.stats()
30  except (DNSError, RadioBrowserError) as err:
31  raise ConfigEntryNotReady("Could not connect to Radio Browser API") from err
32 
33  entry.runtime_data = radios
34  return True
35 
36 
37 async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
38  """Unload a config entry."""
39  return True
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:37
bool async_setup_entry(HomeAssistant hass, RadioBrowserConfigEntry entry)
Definition: __init__.py:19
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)