Skip updating idle Plex clients (#28664)

* Skip updating idle clients

* Different operators
pull/28681/head
jjlawren 2019-11-10 04:35:12 -06:00 committed by Martin Hjelmare
parent a9536e4ed1
commit 206547a5d8
1 changed files with 7 additions and 1 deletions

View File

@ -44,6 +44,7 @@ class PlexServer:
self._hass = hass
self._plex_server = None
self._known_clients = set()
self._known_idle = set()
self._url = server_config.get(CONF_URL)
self._token = server_config.get(CONF_TOKEN)
self._server_name = server_config.get(CONF_SERVER)
@ -123,6 +124,7 @@ class PlexServer:
return
for device in devices:
self._known_idle.discard(device.machineIdentifier)
available_clients[device.machineIdentifier] = {"device": device}
if device.machineIdentifier not in self._known_clients:
@ -131,6 +133,7 @@ class PlexServer:
for session in sessions:
for player in session.players:
self._known_idle.discard(player.machineIdentifier)
available_clients.setdefault(
player.machineIdentifier, {"device": player}
)
@ -151,9 +154,12 @@ class PlexServer:
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:
self.refresh_entity(client_id, None, None)
self._known_idle.add(client_id)
if new_entity_configs:
dispatcher_send(