Set Plex media_player discovery source as an attribute (#36884)
parent
f131959f4b
commit
9d40ae96b5
|
@ -15,6 +15,7 @@ DEBOUNCE_TIMEOUT = 1
|
|||
DISPATCHERS = "dispatchers"
|
||||
PLATFORMS = frozenset(["media_player", "sensor"])
|
||||
PLATFORMS_COMPLETED = "platforms_completed"
|
||||
PLAYER_SOURCE = "player_source"
|
||||
SERVERS = "servers"
|
||||
WEBSOCKETS = "websockets"
|
||||
|
||||
|
|
|
@ -90,11 +90,12 @@ def _async_add_entities(
|
|||
class PlexMediaPlayer(MediaPlayerEntity):
|
||||
"""Representation of a Plex device."""
|
||||
|
||||
def __init__(self, plex_server, device, session=None):
|
||||
def __init__(self, plex_server, device, player_source, session=None):
|
||||
"""Initialize the Plex device."""
|
||||
self.plex_server = plex_server
|
||||
self.device = device
|
||||
self.session = session
|
||||
self.player_source = player_source
|
||||
self._app_name = ""
|
||||
self._available = False
|
||||
self._device_protocol_capabilities = None
|
||||
|
@ -596,6 +597,7 @@ class PlexMediaPlayer(MediaPlayerEntity):
|
|||
"session_username": self.username,
|
||||
"media_library_name": self._app_name,
|
||||
"summary": self.media_summary,
|
||||
"player_source": self.player_source,
|
||||
}
|
||||
|
||||
return attr
|
||||
|
|
|
@ -32,6 +32,7 @@ from .const import (
|
|||
DEBOUNCE_TIMEOUT,
|
||||
DEFAULT_VERIFY_SSL,
|
||||
DOMAIN,
|
||||
PLAYER_SOURCE,
|
||||
PLEX_NEW_MP_SIGNAL,
|
||||
PLEX_UPDATE_MEDIA_PLAYER_SIGNAL,
|
||||
PLEX_UPDATE_SENSOR_SIGNAL,
|
||||
|
@ -257,6 +258,9 @@ class PlexServer:
|
|||
def process_device(source, device):
|
||||
self._known_idle.discard(device.machineIdentifier)
|
||||
available_clients.setdefault(device.machineIdentifier, {"device": device})
|
||||
available_clients[device.machineIdentifier].setdefault(
|
||||
PLAYER_SOURCE, source
|
||||
)
|
||||
|
||||
if device.machineIdentifier not in ignored_clients:
|
||||
if self.option_ignore_plexweb_clients and device.product == "Plex Web":
|
||||
|
@ -275,11 +279,14 @@ class PlexServer:
|
|||
):
|
||||
new_clients.add(device.machineIdentifier)
|
||||
_LOGGER.debug(
|
||||
"New %s %s: %s", device.product, source, device.machineIdentifier
|
||||
"New %s from %s: %s",
|
||||
device.product,
|
||||
source,
|
||||
device.machineIdentifier,
|
||||
)
|
||||
|
||||
for device in devices:
|
||||
process_device("device", device)
|
||||
process_device("PMS", device)
|
||||
|
||||
def connect_to_resource(resource):
|
||||
"""Connect to a plex.tv resource and return a Plex client."""
|
||||
|
@ -303,7 +310,7 @@ class PlexServer:
|
|||
connect_to_resource, plextv_client
|
||||
)
|
||||
if device:
|
||||
process_device("resource", device)
|
||||
process_device("plex.tv", device)
|
||||
|
||||
for session in sessions:
|
||||
if session.TYPE == "photo":
|
||||
|
|
Loading…
Reference in New Issue