This commit is contained in:
2025-06-20 16:33:12 -04:00
parent f15171147b
commit 37b929fcbe
5 changed files with 105 additions and 5 deletions

View File

@@ -52,11 +52,28 @@ class APIHandler(AlarmAPIMixin,
scheme = 'https' if https else 'http'
self.url = f"{scheme}://{ip}/cgi-bin/api.cgi"
self.ip = ip
self.token = None
self._token = None
self.username = username
self.password = password
Request.proxies = kwargs.get("proxy") # Defaults to None if key isn't found
def __getattr__(self, name):
if name == 'token':
if self._token is None:
self.login()
return self._token
else:
return getattr(self, name)
def __del__(self):
if self._token is not None:
print('Logging out')
self.logout()
else:
print('not logged in, logging out')
def login(self) -> bool:
"""
Get login token
@@ -72,7 +89,7 @@ class APIHandler(AlarmAPIMixin,
data = response.json()[0]
code = data["code"]
if int(code) == 0:
self.token = data["value"]["Token"]["name"]
self._token = data["value"]["Token"]["name"]
print("Login success")
return True
print(self.token)
@@ -95,6 +112,7 @@ class APIHandler(AlarmAPIMixin,
try:
data = [{"cmd": "Logout", "action": 0}]
self._execute_command('Logout', data)
self._token = None
# print(ret)
return True
except Exception as e: