added ability to save access_token for lazy_logins during development
parent
a0b3ac0861
commit
d6d8283afb
|
@ -3,3 +3,4 @@ __pycache__
|
||||||
.DS_Store
|
.DS_Store
|
||||||
my_settings.py
|
my_settings.py
|
||||||
*.orig
|
*.orig
|
||||||
|
.lazy_login
|
|
@ -34,6 +34,11 @@ class EagleEyev3():
|
||||||
|
|
||||||
self.base_url = None
|
self.base_url = None
|
||||||
|
|
||||||
|
self.lazy_login = True
|
||||||
|
|
||||||
|
if self.lazy_login:
|
||||||
|
self._load_access_token()
|
||||||
|
|
||||||
def _load_vars_from_settings(self):
|
def _load_vars_from_settings(self):
|
||||||
"""
|
"""
|
||||||
Load variables from the settings module.
|
Load variables from the settings module.
|
||||||
|
@ -47,6 +52,25 @@ class EagleEyev3():
|
||||||
# Note: Please see the note in settings.py about trailing slashes and modify this line if needed
|
# Note: Please see the note in settings.py about trailing slashes and modify this line if needed
|
||||||
self.redirect_uri = f"{settings.server_protocol}://{settings.server_host}:{settings.server_port}"
|
self.redirect_uri = f"{settings.server_protocol}://{settings.server_host}:{settings.server_port}"
|
||||||
|
|
||||||
|
def _save_access_token(self):
|
||||||
|
with open(".lazy_login", "w") as json_file:
|
||||||
|
json.dump({
|
||||||
|
'access_token': self.access_token,
|
||||||
|
'refresh_token': self.refresh_token,
|
||||||
|
'current_user': self.current_user
|
||||||
|
}, json_file)
|
||||||
|
|
||||||
|
def _load_access_token(self):
|
||||||
|
with open(".lazy_login", "r") as json_file:
|
||||||
|
saved = json.load(json_file)
|
||||||
|
if 'access_token' in saved:
|
||||||
|
self.access_token = saved['access_token']
|
||||||
|
if 'refresh_token' in saved:
|
||||||
|
self.refresh_token = saved['refresh_token']
|
||||||
|
|
||||||
|
self.get_base_url(cascade=True)
|
||||||
|
|
||||||
|
|
||||||
def login_tokens(self, code=None, cascade=True):
|
def login_tokens(self, code=None, cascade=True):
|
||||||
"""
|
"""
|
||||||
Obtains login tokens using the authorization code.
|
Obtains login tokens using the authorization code.
|
||||||
|
@ -72,6 +96,10 @@ class EagleEyev3():
|
||||||
success = True
|
success = True
|
||||||
self.access_token = response_json['access_token']
|
self.access_token = response_json['access_token']
|
||||||
self.refresh_token = response_json['refresh_token']
|
self.refresh_token = response_json['refresh_token']
|
||||||
|
|
||||||
|
if self.lazy_login:
|
||||||
|
self._save_access_token()
|
||||||
|
|
||||||
if cascade:
|
if cascade:
|
||||||
self.get_base_url()
|
self.get_base_url()
|
||||||
else:
|
else:
|
||||||
|
@ -358,3 +386,32 @@ class EagleEyev3():
|
||||||
"response_http_status": response.status_code,
|
"response_http_status": response.status_code,
|
||||||
"data": response_json
|
"data": response_json
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class Device():
|
||||||
|
|
||||||
|
def __init__(self, id=None, name=None, status=None, account_id=None):
|
||||||
|
|
||||||
|
self.id = id
|
||||||
|
self.name = name
|
||||||
|
self.status = status
|
||||||
|
self.account_id = account_id
|
||||||
|
|
||||||
|
def get_id(self):
|
||||||
|
return self.id
|
||||||
|
|
||||||
|
def get_status(self):
|
||||||
|
return self.status
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Camera(Device):
|
||||||
|
|
||||||
|
def __init__(self, id=None, name=None, status=None, account_id=None, bridge_id=None):
|
||||||
|
super().__init__(id=id, name=name, status=status, account_id=account_id)
|
||||||
|
self.bridge_id = bridge_id
|
||||||
|
self.previews = []
|
||||||
|
self.videos = []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue