Use dataclass properties in dlna_dmr (#60794)
Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
parent
d775c66194
commit
66494b0238
2 changed files with 9 additions and 9 deletions
|
@ -4,7 +4,7 @@ from __future__ import annotations
|
|||
from collections.abc import Callable
|
||||
import logging
|
||||
from pprint import pformat
|
||||
from typing import Any, Mapping, Optional
|
||||
from typing import Any, Mapping, Optional, cast
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from async_upnp_client.client import UpnpError
|
||||
|
@ -93,8 +93,8 @@ class DlnaDmrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
return await self.async_step_manual()
|
||||
|
||||
self._discoveries = {
|
||||
discovery.get(ssdp.ATTR_UPNP_FRIENDLY_NAME)
|
||||
or urlparse(discovery[ssdp.ATTR_SSDP_LOCATION]).hostname: discovery
|
||||
discovery.upnp.get(ssdp.ATTR_UPNP_FRIENDLY_NAME)
|
||||
or cast(str, urlparse(discovery.ssdp_location).hostname): discovery
|
||||
for discovery in discoveries
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@ class DlnaDmrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
|
||||
# Find the device in the list of unconfigured devices
|
||||
for discovery in discoveries:
|
||||
if discovery[ssdp.ATTR_SSDP_LOCATION] == self._location:
|
||||
if discovery.ssdp_location == self._location:
|
||||
# Device found via SSDP, it shouldn't need polling
|
||||
self._options[CONF_POLL_AVAILABILITY] = False
|
||||
# Discovery info has everything required to create config entry
|
||||
|
@ -376,9 +376,7 @@ class DlnaDmrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
for entry in self._async_current_entries(include_ignore=False)
|
||||
}
|
||||
discoveries = [
|
||||
disc
|
||||
for disc in discoveries
|
||||
if disc[ssdp.ATTR_SSDP_UDN] not in current_unique_ids
|
||||
disc for disc in discoveries if disc.ssdp_udn not in current_unique_ids
|
||||
]
|
||||
|
||||
return discoveries
|
||||
|
|
|
@ -6,7 +6,7 @@ from collections.abc import Sequence
|
|||
import contextlib
|
||||
from datetime import datetime, timedelta
|
||||
import functools
|
||||
from typing import Any, Callable, TypeVar, cast
|
||||
from typing import TYPE_CHECKING, Any, Callable, TypeVar, cast
|
||||
|
||||
from async_upnp_client import UpnpService, UpnpStateVariable
|
||||
from async_upnp_client.const import NotificationSubType
|
||||
|
@ -278,7 +278,9 @@ class DlnaDmrEntity(MediaPlayerEntity):
|
|||
await self._device_disconnect()
|
||||
|
||||
if change == ssdp.SsdpChange.ALIVE and not self._device:
|
||||
location = info.ssdp_location or ""
|
||||
if TYPE_CHECKING:
|
||||
assert info.ssdp_location
|
||||
location = info.ssdp_location
|
||||
try:
|
||||
await self._device_connect(location)
|
||||
except UpnpError as err:
|
||||
|
|
Loading…
Add table
Reference in a new issue