Better supression of api calls in persistant sessions

This commit is contained in:
Kevin Fronczak
2020-05-30 17:07:47 +00:00
parent 27cddaac70
commit 69e10a22c4
4 changed files with 34 additions and 9 deletions
+1 -1
View File
@@ -258,7 +258,7 @@ def http_get(blink, url, stream=False, json=True, is_retry=False):
:param json: Return json response? TRUE/False
:param is_retry: Is this part of a re-auth attempt?
"""
_LOGGER.debug("Making GET request to %s", url)
_LOGGER.error("Making GET request to %s", url)
return blink.auth.query(
url=url,
headers=blink.auth.header,
+3 -2
View File
@@ -200,10 +200,11 @@ class Auth:
return False
return True
def check_key_required(self):
def check_key_required(self, blink):
"""Check if 2FA key is required."""
try:
if self.login_response["client"]["verification_required"]:
response = api.request_user(blink)
if response["verification_required"]:
return True
except (KeyError, TypeError):
pass
+16 -3
View File
@@ -100,7 +100,7 @@ class Blink:
self.available = 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.auth.no_prompt:
return True
@@ -141,7 +141,12 @@ class Blink:
def setup_camera_list(self):
"""Create camera list for onboarded networks."""
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:
for camera in response["cameras"]:
camera_network = str(camera["network_id"])
@@ -150,6 +155,7 @@ class Blink:
all_cameras[camera_network].append(
{"name": camera["name"], "id": camera["id"]}
)
self.auth.data["homescreen"] = response
return all_cameras
except (KeyError, TypeError):
_LOGGER.error("Unable to retrieve cameras from response %s", response)
@@ -172,9 +178,16 @@ class Blink:
def setup_networks(self):
"""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:
self.networks = response["summary"]
self.auth.data["networks"] = self.networks
except (KeyError, TypeError):
raise BlinkSetupError
+14 -3
View File
@@ -85,7 +85,13 @@ class BlinkSyncModule:
def start(self):
"""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:
self.summary = response["syncmodule"]
self.network_id = self.summary["network_id"]
@@ -107,7 +113,6 @@ class BlinkSyncModule:
)
is_ok = self.get_network_info()
self.check_new_videos()
try:
for camera_config in self.camera_list:
if "name" not in camera_config:
@@ -140,7 +145,13 @@ class BlinkSyncModule:
def get_camera_info(self, camera_id):
"""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:
return response["camera"][0]
except (TypeError, KeyError):