mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 10:47:10 +00:00
Skip updating idle Plex clients (#28664)
* Skip updating idle clients * Different operators
This commit is contained in:
parent
a9536e4ed1
commit
206547a5d8
@ -44,6 +44,7 @@ class PlexServer:
|
|||||||
self._hass = hass
|
self._hass = hass
|
||||||
self._plex_server = None
|
self._plex_server = None
|
||||||
self._known_clients = set()
|
self._known_clients = set()
|
||||||
|
self._known_idle = set()
|
||||||
self._url = server_config.get(CONF_URL)
|
self._url = server_config.get(CONF_URL)
|
||||||
self._token = server_config.get(CONF_TOKEN)
|
self._token = server_config.get(CONF_TOKEN)
|
||||||
self._server_name = server_config.get(CONF_SERVER)
|
self._server_name = server_config.get(CONF_SERVER)
|
||||||
@ -123,6 +124,7 @@ class PlexServer:
|
|||||||
return
|
return
|
||||||
|
|
||||||
for device in devices:
|
for device in devices:
|
||||||
|
self._known_idle.discard(device.machineIdentifier)
|
||||||
available_clients[device.machineIdentifier] = {"device": device}
|
available_clients[device.machineIdentifier] = {"device": device}
|
||||||
|
|
||||||
if device.machineIdentifier not in self._known_clients:
|
if device.machineIdentifier not in self._known_clients:
|
||||||
@ -131,6 +133,7 @@ class PlexServer:
|
|||||||
|
|
||||||
for session in sessions:
|
for session in sessions:
|
||||||
for player in session.players:
|
for player in session.players:
|
||||||
|
self._known_idle.discard(player.machineIdentifier)
|
||||||
available_clients.setdefault(
|
available_clients.setdefault(
|
||||||
player.machineIdentifier, {"device": player}
|
player.machineIdentifier, {"device": player}
|
||||||
)
|
)
|
||||||
@ -151,9 +154,12 @@ class PlexServer:
|
|||||||
|
|
||||||
self._known_clients.update(new_clients)
|
self._known_clients.update(new_clients)
|
||||||
|
|
||||||
idle_clients = self._known_clients.difference(available_clients)
|
idle_clients = (self._known_clients - self._known_idle).difference(
|
||||||
|
available_clients
|
||||||
|
)
|
||||||
for client_id in idle_clients:
|
for client_id in idle_clients:
|
||||||
self.refresh_entity(client_id, None, None)
|
self.refresh_entity(client_id, None, None)
|
||||||
|
self._known_idle.add(client_id)
|
||||||
|
|
||||||
if new_entity_configs:
|
if new_entity_configs:
|
||||||
dispatcher_send(
|
dispatcher_send(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user