YACWC
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user