From 493912b224bc92dbf2b9ebd22bca6cc69fd032f2 Mon Sep 17 00:00:00 2001 From: Luke Wakeford Date: Fri, 19 Oct 2018 09:57:55 +0100 Subject: [PATCH 1/2] generating urls using format string syntax --- greenwavereality/greenwavereality.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/greenwavereality/greenwavereality.py b/greenwavereality/greenwavereality.py index 51e45d2..3d9fe7a 100644 --- a/greenwavereality/greenwavereality.py +++ b/greenwavereality/greenwavereality.py @@ -11,8 +11,7 @@ def grab_xml(host, token=None): if not token: scheme = "http" token = "1234567890" - url = ( - scheme + '://' + host + '/gwr/gop.php?cmd=GWRBatch&data=RoomGetCarousel1' + token + 'name,status&fmt=xml') + url = '{}://{}/gwr/gop.php?cmd=GWRBatch&data=RoomGetCarousel1{}name,status&fmt=xml'.format(scheme, host, token) response = requests.get(url, verify=False) parsed = xmltodict.parse(response.content, force_list={'room', 'device'}) parsed = parsed['gwrcmds']['gwrcmd']['gdata']['gip']['room'] @@ -27,9 +26,7 @@ def set_brightness(host, did, value, token=None): if not token: scheme = "http" token = "1234567890" - url = ( - scheme + '://' + host + '/gwr/gop.php?cmd=DeviceSendCommand&data=1' + token + '' + did + '' + str( - value) + 'level&fmt=xml') + url = '{}://{}/gwr/gop.php?cmd=DeviceSendCommand&data=1{}{}{}level&fmt=xml'.format(scheme, host, token, did, value) response = requests.get(url, verify=False) if response.status_code == '200': return True @@ -54,8 +51,7 @@ def turn_on(host, did, token=None): if not token: scheme = "http" token = "1234567890" - url = ( - scheme + '://' + host + '/gwr/gop.php?cmd=DeviceSendCommand&data=1' + token + '' + did + '1&fmt=xml') + url = '{}://{}/gwr/gop.php?cmd=DeviceSendCommand&data=1{}{}1&fmt=xml'.format(scheme, host, token, did) response = requests.get(url, verify=False) if response.status_code == '200': return True @@ -71,8 +67,7 @@ def turn_off(host, did, token=None): if not token: scheme = "http" token = "1234567890" - url = ( - scheme + '://' + host + '/gwr/gop.php?cmd=DeviceSendCommand&data=1' + token + '' + did + '0&fmt=xml') + url = '{}://{}/gwr/gop.php?cmd=DeviceSendCommand&data=1{}{}0&fmt=xml'.format(scheme, host, token, did) response = requests.get(url, verify=False) if response.status_code == '200': return True @@ -88,7 +83,7 @@ def check_online(device): def grab_token(host, email, password): """Grab token from gateway. Press sync button before running.""" urllib3.disable_warnings() - url = ('https://' + host + '/gwr/gop.php?cmd=GWRLogin&data=1' + str(email) + '' + str(password) + '&fmt=xml') + url = 'https://{}/gwr/gop.php?cmd=GWRLogin&data=1{}{}&fmt=xml'.format(host, email, password) response = requests.get(url, verify=False) if '404' in response.text: raise PermissionError('Not In Pairing Mode') From 8f9d4647f8b16fbb804e28214104bb5b6a1b4937 Mon Sep 17 00:00:00 2001 From: Luke Wakeford Date: Fri, 19 Oct 2018 10:03:47 +0100 Subject: [PATCH 2/2] Adding timeouts to get requests --- greenwavereality/greenwavereality.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/greenwavereality/greenwavereality.py b/greenwavereality/greenwavereality.py index 3d9fe7a..4297198 100644 --- a/greenwavereality/greenwavereality.py +++ b/greenwavereality/greenwavereality.py @@ -12,7 +12,7 @@ def grab_xml(host, token=None): scheme = "http" token = "1234567890" url = '{}://{}/gwr/gop.php?cmd=GWRBatch&data=RoomGetCarousel1{}name,status&fmt=xml'.format(scheme, host, token) - response = requests.get(url, verify=False) + response = requests.get(url, timeout=10.0, verify=False) parsed = xmltodict.parse(response.content, force_list={'room', 'device'}) parsed = parsed['gwrcmds']['gwrcmd']['gdata']['gip']['room'] return parsed @@ -27,7 +27,7 @@ def set_brightness(host, did, value, token=None): scheme = "http" token = "1234567890" url = '{}://{}/gwr/gop.php?cmd=DeviceSendCommand&data=1{}{}{}level&fmt=xml'.format(scheme, host, token, did, value) - response = requests.get(url, verify=False) + response = requests.get(url, timeout=10.0, verify=False) if response.status_code == '200': return True else: @@ -52,7 +52,7 @@ def turn_on(host, did, token=None): scheme = "http" token = "1234567890" url = '{}://{}/gwr/gop.php?cmd=DeviceSendCommand&data=1{}{}1&fmt=xml'.format(scheme, host, token, did) - response = requests.get(url, verify=False) + response = requests.get(url, timeout=10.0, verify=False) if response.status_code == '200': return True else: @@ -68,7 +68,7 @@ def turn_off(host, did, token=None): scheme = "http" token = "1234567890" url = '{}://{}/gwr/gop.php?cmd=DeviceSendCommand&data=1{}{}0&fmt=xml'.format(scheme, host, token, did) - response = requests.get(url, verify=False) + response = requests.get(url, timeout=10.0, verify=False) if response.status_code == '200': return True else: @@ -84,7 +84,7 @@ def grab_token(host, email, password): """Grab token from gateway. Press sync button before running.""" urllib3.disable_warnings() url = 'https://{}/gwr/gop.php?cmd=GWRLogin&data=1{}{}&fmt=xml'.format(host, email, password) - response = requests.get(url, verify=False) + response = requests.get(url, timeout=10.0, verify=False) if '404' in response.text: raise PermissionError('Not In Pairing Mode') parsed = xmltodict.parse(response.content)