Explicitly pass in the config_entry in jellyfin coordinator (#138129)

explicitly pass in the config_entry in coordinator
This commit is contained in:
Michael 2025-02-09 20:30:53 +01:00 committed by GitHub
parent fd57803b15
commit 6d2f8b1076
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 16 additions and 15 deletions

View File

@ -2,16 +2,13 @@
from typing import Any from typing import Any
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import device_registry as dr from homeassistant.helpers import device_registry as dr
from .client_wrapper import CannotConnect, InvalidAuth, create_client, validate_input from .client_wrapper import CannotConnect, InvalidAuth, create_client, validate_input
from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, PLATFORMS from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, PLATFORMS
from .coordinator import JellyfinDataUpdateCoordinator from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator
type JellyfinConfigEntry = ConfigEntry[JellyfinDataUpdateCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: JellyfinConfigEntry) -> bool: async def async_setup_entry(hass: HomeAssistant, entry: JellyfinConfigEntry) -> bool:
@ -35,7 +32,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: JellyfinConfigEntry) ->
server_info: dict[str, Any] = connect_result["Servers"][0] server_info: dict[str, Any] = connect_result["Servers"][0]
coordinator = JellyfinDataUpdateCoordinator(hass, client, server_info, user_id) coordinator = JellyfinDataUpdateCoordinator(
hass, entry, client, server_info, user_id
)
await coordinator.async_config_entry_first_refresh() await coordinator.async_config_entry_first_refresh()

View File

@ -13,9 +13,9 @@ from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.util.uuid import random_uuid_hex from homeassistant.util.uuid import random_uuid_hex
from . import JellyfinConfigEntry
from .client_wrapper import CannotConnect, InvalidAuth, create_client, validate_input from .client_wrapper import CannotConnect, InvalidAuth, create_client, validate_input
from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, SUPPORTED_AUDIO_CODECS from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, SUPPORTED_AUDIO_CODECS
from .coordinator import JellyfinConfigEntry
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -13,15 +13,18 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, LOGGER, USER_APP_NAME from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, LOGGER, USER_APP_NAME
type JellyfinConfigEntry = ConfigEntry[JellyfinDataUpdateCoordinator]
class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, Any]]]): class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, Any]]]):
"""Data update coordinator for the Jellyfin integration.""" """Data update coordinator for the Jellyfin integration."""
config_entry: ConfigEntry config_entry: JellyfinConfigEntry
def __init__( def __init__(
self, self,
hass: HomeAssistant, hass: HomeAssistant,
config_entry: JellyfinConfigEntry,
api_client: JellyfinClient, api_client: JellyfinClient,
system_info: dict[str, Any], system_info: dict[str, Any],
user_id: str, user_id: str,
@ -30,6 +33,7 @@ class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, An
super().__init__( super().__init__(
hass=hass, hass=hass,
logger=LOGGER, logger=LOGGER,
config_entry=config_entry,
name=DOMAIN, name=DOMAIN,
update_interval=timedelta(seconds=10), update_interval=timedelta(seconds=10),
) )
@ -37,7 +41,7 @@ class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, An
self.server_id: str = system_info["Id"] self.server_id: str = system_info["Id"]
self.server_name: str = system_info["Name"] self.server_name: str = system_info["Name"]
self.server_version: str | None = system_info.get("Version") self.server_version: str | None = system_info.get("Version")
self.client_device_id: str = self.config_entry.data[CONF_CLIENT_DEVICE_ID] self.client_device_id: str = config_entry.data[CONF_CLIENT_DEVICE_ID]
self.user_id: str = user_id self.user_id: str = user_id
self.session_ids: set[str] = set() self.session_ids: set[str] = set()

View File

@ -8,7 +8,7 @@ from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import CONF_PASSWORD from homeassistant.const import CONF_PASSWORD
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from . import JellyfinConfigEntry from .coordinator import JellyfinConfigEntry
TO_REDACT = {CONF_PASSWORD} TO_REDACT = {CONF_PASSWORD}

View File

@ -15,11 +15,10 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util.dt import parse_datetime from homeassistant.util.dt import parse_datetime
from . import JellyfinConfigEntry
from .browse_media import build_item_response, build_root_response from .browse_media import build_item_response, build_root_response
from .client_wrapper import get_artwork_url from .client_wrapper import get_artwork_url
from .const import CONTENT_TYPE_MAP, LOGGER from .const import CONTENT_TYPE_MAP, LOGGER
from .coordinator import JellyfinDataUpdateCoordinator from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator
from .entity import JellyfinClientEntity from .entity import JellyfinClientEntity

View File

@ -19,7 +19,6 @@ from homeassistant.components.media_source import (
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from . import JellyfinConfigEntry
from .const import ( from .const import (
COLLECTION_TYPE_MOVIES, COLLECTION_TYPE_MOVIES,
COLLECTION_TYPE_MUSIC, COLLECTION_TYPE_MUSIC,
@ -48,6 +47,7 @@ from .const import (
PLAYABLE_ITEM_TYPES, PLAYABLE_ITEM_TYPES,
SUPPORTED_COLLECTION_TYPES, SUPPORTED_COLLECTION_TYPES,
) )
from .coordinator import JellyfinConfigEntry
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -16,9 +16,8 @@ from homeassistant.components.remote import (
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import JellyfinConfigEntry
from .const import LOGGER from .const import LOGGER
from .coordinator import JellyfinDataUpdateCoordinator from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator
from .entity import JellyfinClientEntity from .entity import JellyfinClientEntity

View File

@ -11,7 +11,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from . import JellyfinConfigEntry, JellyfinDataUpdateCoordinator from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator
from .entity import JellyfinServerEntity from .entity import JellyfinServerEntity