mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Improve typing in plex services (#87078)
This commit is contained in:
parent
5005ba0b4a
commit
10bfebed19
@ -20,6 +20,7 @@ from .const import (
|
|||||||
)
|
)
|
||||||
from .errors import MediaNotFound
|
from .errors import MediaNotFound
|
||||||
from .models import PlexMediaSearchResult
|
from .models import PlexMediaSearchResult
|
||||||
|
from .server import PlexServer
|
||||||
|
|
||||||
REFRESH_LIBRARY_SCHEMA = vol.Schema(
|
REFRESH_LIBRARY_SCHEMA = vol.Schema(
|
||||||
{vol.Optional("server_name"): str, vol.Required("library_name"): str}
|
{vol.Optional("server_name"): str, vol.Required("library_name"): str}
|
||||||
@ -28,7 +29,7 @@ REFRESH_LIBRARY_SCHEMA = vol.Schema(
|
|||||||
_LOGGER = logging.getLogger(__package__)
|
_LOGGER = logging.getLogger(__package__)
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_services(hass):
|
async def async_setup_services(hass: HomeAssistant) -> None:
|
||||||
"""Set up services for the Plex component."""
|
"""Set up services for the Plex component."""
|
||||||
|
|
||||||
async def async_refresh_library_service(service_call: ServiceCall) -> None:
|
async def async_refresh_library_service(service_call: ServiceCall) -> None:
|
||||||
@ -53,8 +54,6 @@ async def async_setup_services(hass):
|
|||||||
DOMAIN, SERVICE_SCAN_CLIENTS, async_scan_clients_service
|
DOMAIN, SERVICE_SCAN_CLIENTS, async_scan_clients_service
|
||||||
)
|
)
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def refresh_library(hass: HomeAssistant, service_call: ServiceCall) -> None:
|
def refresh_library(hass: HomeAssistant, service_call: ServiceCall) -> None:
|
||||||
"""Scan a Plex library for new and updated media."""
|
"""Scan a Plex library for new and updated media."""
|
||||||
@ -77,17 +76,22 @@ def refresh_library(hass: HomeAssistant, service_call: ServiceCall) -> None:
|
|||||||
library.update()
|
library.update()
|
||||||
|
|
||||||
|
|
||||||
def get_plex_server(hass, plex_server_name=None, plex_server_id=None):
|
def get_plex_server(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
plex_server_name: str | None = None,
|
||||||
|
plex_server_id: str | None = None,
|
||||||
|
) -> PlexServer:
|
||||||
"""Retrieve a configured Plex server by name."""
|
"""Retrieve a configured Plex server by name."""
|
||||||
if DOMAIN not in hass.data:
|
if DOMAIN not in hass.data:
|
||||||
raise HomeAssistantError("Plex integration not configured")
|
raise HomeAssistantError("Plex integration not configured")
|
||||||
plex_servers = hass.data[DOMAIN][SERVERS].values()
|
servers: dict[str, PlexServer] = hass.data[DOMAIN][SERVERS]
|
||||||
if not plex_servers:
|
if not servers:
|
||||||
raise HomeAssistantError("No Plex servers available")
|
raise HomeAssistantError("No Plex servers available")
|
||||||
|
|
||||||
if plex_server_id:
|
if plex_server_id:
|
||||||
return hass.data[DOMAIN][SERVERS][plex_server_id]
|
return servers[plex_server_id]
|
||||||
|
|
||||||
|
plex_servers = servers.values()
|
||||||
if plex_server_name:
|
if plex_server_name:
|
||||||
plex_server = next(
|
plex_server = next(
|
||||||
(x for x in plex_servers if x.friendly_name == plex_server_name), None
|
(x for x in plex_servers if x.friendly_name == plex_server_name), None
|
||||||
@ -110,7 +114,11 @@ def get_plex_server(hass, plex_server_name=None, plex_server_id=None):
|
|||||||
|
|
||||||
|
|
||||||
def process_plex_payload(
|
def process_plex_payload(
|
||||||
hass, content_type, content_id, default_plex_server=None, supports_playqueues=True
|
hass: HomeAssistant,
|
||||||
|
content_type: str,
|
||||||
|
content_id: str,
|
||||||
|
default_plex_server: PlexServer | None = None,
|
||||||
|
supports_playqueues: bool = True,
|
||||||
) -> PlexMediaSearchResult:
|
) -> PlexMediaSearchResult:
|
||||||
"""Look up Plex media using media_player.play_media service payloads."""
|
"""Look up Plex media using media_player.play_media service payloads."""
|
||||||
plex_server = default_plex_server
|
plex_server = default_plex_server
|
||||||
|
Loading…
x
Reference in New Issue
Block a user