Compare commits

...
Author SHA1 Message Date
Kevin Fronczak 8d7641c765 Reverted temp change 2020-05-30 17:12:12 +00:00
Kevin Fronczak 69e10a22c4 Better supression of api calls in persistant sessions 2020-05-30 17:07:47 +00:00
3 changed files with 33 additions and 8 deletions
+3 -2
View File
@@ -200,10 +200,11 @@ class Auth:
return False return False
return True return True
def check_key_required(self): def check_key_required(self, blink):
"""Check if 2FA key is required.""" """Check if 2FA key is required."""
try: try:
if self.login_response["client"]["verification_required"]: response = api.request_user(blink)
if response["verification_required"]:
return True return True
except (KeyError, TypeError): except (KeyError, TypeError):
pass pass
+16 -3
View File
@@ -100,7 +100,7 @@ class Blink:
self.available = False self.available = False
return False return False
self.key_required = self.auth.check_key_required() self.key_required = self.auth.check_key_required(self)
if self.key_required: if self.key_required:
if self.auth.no_prompt: if self.auth.no_prompt:
return True return True
@@ -141,7 +141,12 @@ class Blink:
def setup_camera_list(self): def setup_camera_list(self):
"""Create camera list for onboarded networks.""" """Create camera list for onboarded networks."""
all_cameras = {} all_cameras = {}
response = api.request_homescreen(self) try:
response = self.auth.login_attributes["homescreen"]
if response is None:
raise KeyError
except KeyError:
response = api.request_homescreen(self)
try: try:
for camera in response["cameras"]: for camera in response["cameras"]:
camera_network = str(camera["network_id"]) camera_network = str(camera["network_id"])
@@ -150,6 +155,7 @@ class Blink:
all_cameras[camera_network].append( all_cameras[camera_network].append(
{"name": camera["name"], "id": camera["id"]} {"name": camera["name"], "id": camera["id"]}
) )
self.auth.data["homescreen"] = response
return all_cameras return all_cameras
except (KeyError, TypeError): except (KeyError, TypeError):
_LOGGER.error("Unable to retrieve cameras from response %s", response) _LOGGER.error("Unable to retrieve cameras from response %s", response)
@@ -172,9 +178,16 @@ class Blink:
def setup_networks(self): def setup_networks(self):
"""Get network information.""" """Get network information."""
response = api.request_networks(self) try:
self.networks = self.auth.login_attributes["networks"]
if self.networks is None:
raise KeyError
return
except KeyError:
response = api.request_networks(self)
try: try:
self.networks = response["summary"] self.networks = response["summary"]
self.auth.data["networks"] = self.networks
except (KeyError, TypeError): except (KeyError, TypeError):
raise BlinkSetupError raise BlinkSetupError
+14 -3
View File
@@ -85,7 +85,13 @@ class BlinkSyncModule:
def start(self): def start(self):
"""Initialize the system.""" """Initialize the system."""
response = api.request_syncmodule(self.blink, self.network_id) try:
response = self.blink.auth.login_attributes["sync"]
if response is None:
raise KeyError
except KeyError:
response = api.request_syncmodule(self.blink, self.network_id)
self.blink.auth.data["sync"] = response
try: try:
self.summary = response["syncmodule"] self.summary = response["syncmodule"]
self.network_id = self.summary["network_id"] self.network_id = self.summary["network_id"]
@@ -107,7 +113,6 @@ class BlinkSyncModule:
) )
is_ok = self.get_network_info() is_ok = self.get_network_info()
self.check_new_videos()
try: try:
for camera_config in self.camera_list: for camera_config in self.camera_list:
if "name" not in camera_config: if "name" not in camera_config:
@@ -140,7 +145,13 @@ class BlinkSyncModule:
def get_camera_info(self, camera_id): def get_camera_info(self, camera_id):
"""Retrieve camera information.""" """Retrieve camera information."""
response = api.request_camera_info(self.blink, self.network_id, camera_id) try:
response = self.blink.auth.login_attributes["camera_info"]
if response is None:
raise KeyError
except KeyError:
response = api.request_camera_info(self.blink, self.network_id, camera_id)
self.blink.auth.data["camera_info"] = response
try: try:
return response["camera"][0] return response["camera"][0]
except (TypeError, KeyError): except (TypeError, KeyError):