ui: fix sunnylink paired/sponsorship state (#1603)

* fix

* no point polling when disabled
This commit is contained in:
Nayan
2025-12-21 22:26:11 -05:00
committed by GitHub
parent 9c7c84bd03
commit 3093bb0b66
2 changed files with 9 additions and 5 deletions

View File

@@ -23,7 +23,10 @@ class UIStateSP:
self.sunnylink_state = SunnylinkState()
def update(self) -> None:
self.sunnylink_state.start()
if self.sunnylink_enabled:
self.sunnylink_state.start()
else:
self.sunnylink_state.stop()
@staticmethod
def update_status(ss, ss_sp, onroad_evt) -> str:

View File

@@ -136,10 +136,11 @@ class SunnylinkState:
token = self._api.get_token()
response = self._api.api_get(f"device/{self.sunnylink_dongle_id}/roles", method='GET', access_token=token)
if response.status_code == 200:
self._roles = _parse_roles(response.text)
self._params.put("SunnylinkCache_Roles", response.text)
sponsor_tier = self._get_highest_tier()
roles = response.text
self._params.put("SunnylinkCache_Roles", roles)
with self._lock:
self._roles = _parse_roles(roles)
sponsor_tier = self._get_highest_tier()
if sponsor_tier != self.sponsor_tier:
self.sponsor_tier = sponsor_tier
cloudlog.info(f"Sunnylink sponsor tier updated to {sponsor_tier.name}")
@@ -157,7 +158,7 @@ class SunnylinkState:
users = response.text
self._params.put("SunnylinkCache_Users", users)
with self._lock:
_parse_users(users)
self._users = _parse_users(users)
except Exception as e:
cloudlog.exception(f"Failed to fetch sunnylink users: {e} for dongle id {self.sunnylink_dongle_id}")