1 """Base Entity for Jellyfin."""
3 from __future__
import annotations
10 from .const
import DEFAULT_NAME, DOMAIN
11 from .coordinator
import JellyfinDataUpdateCoordinator
15 """Defines a base Jellyfin entity."""
17 _attr_has_entity_name =
True
21 """Defines a base Jellyfin server entity."""
23 def __init__(self, coordinator: JellyfinDataUpdateCoordinator) ->
None:
24 """Initialize the Jellyfin entity."""
27 entry_type=DeviceEntryType.SERVICE,
28 identifiers={(DOMAIN, coordinator.server_id)},
29 manufacturer=DEFAULT_NAME,
30 name=coordinator.server_name,
31 sw_version=coordinator.server_version,
36 """Defines a base Jellyfin client entity."""
40 coordinator: JellyfinDataUpdateCoordinator,
43 """Initialize the Jellyfin entity."""
46 self.device_id: str = self.
session_datasession_data[
"DeviceId"]
47 self.device_name: str = self.
session_datasession_data[
"DeviceName"]
48 self.client_name: str = self.
session_datasession_data[
"Client"]
49 self.app_version: str = self.
session_datasession_data[
"ApplicationVersion"]
50 self.capabilities: dict[str, Any] = self.
session_datasession_data[
"Capabilities"]
52 if self.capabilities.
get(
"SupportsPersistentIdentifier",
False):
54 identifiers={(DOMAIN, self.device_id)},
55 manufacturer=
"Jellyfin",
56 model=self.client_name,
57 name=self.device_name,
58 sw_version=self.app_version,
59 via_device=(DOMAIN, coordinator.server_id),
69 """Return the session data."""
70 return self.coordinator.data[self.
session_idsession_id]
74 """Return if entity is available."""
75 return super().available
and self.
session_idsession_id
in self.coordinator.data
None __init__(self, JellyfinDataUpdateCoordinator coordinator, str session_id)
dict[str, Any] session_data(self)
bool _attr_has_entity_name
None __init__(self, JellyfinDataUpdateCoordinator coordinator)
web.Response get(self, web.Request request, str config_key)