diff options
author | Jan200101 <sentrycraft123@gmail.com> | 2023-07-09 19:48:38 +0200 |
---|---|---|
committer | Jan200101 <sentrycraft123@gmail.com> | 2023-07-09 19:48:38 +0200 |
commit | 6cd969148afbd0b51ffdc2b12908d75d5fd23ca4 (patch) | |
tree | f6136a66451536002a195c69ce488df3cf4a2d24 | |
parent | e4f6edc19bc45835c19ffdbaaffc8d33143f0fb4 (diff) | |
download | ShellyPy-6cd969148afbd0b51ffdc2b12908d75d5fd23ca4.tar.gz ShellyPy-6cd969148afbd0b51ffdc2b12908d75d5fd23ca4.zip |
Implement Gen2 digest auth
-rw-r--r-- | ShellyPy/base.py | 4 | ||||
-rw-r--r-- | ShellyPy/gen1.py | 7 | ||||
-rw-r--r-- | ShellyPy/gen2.py | 9 |
3 files changed, 14 insertions, 6 deletions
diff --git a/ShellyPy/base.py b/ShellyPy/base.py index 505d796..6c34be0 100644 --- a/ShellyPy/base.py +++ b/ShellyPy/base.py @@ -5,8 +5,6 @@ if version_info.major == 3: else: JSONDecodeError = ValueError -from requests.auth import HTTPBasicAuth - class ShellyBase: def __init__(self, ip, port = "80", *args, **kwargs): @@ -37,7 +35,7 @@ class ShellyBase: self.__timeout__ = kwargs.get("timeout", 5) - self.__credentials__ = HTTPBasicAuth( + self.__credentials__ = ( login.get("username", ""), login.get("password", "") ) diff --git a/ShellyPy/gen1.py b/ShellyPy/gen1.py index e3df549..dea4650 100644 --- a/ShellyPy/gen1.py +++ b/ShellyPy/gen1.py @@ -7,6 +7,7 @@ else: from requests import post +from requests.auth import HTTPBasicAuth from .error import BadLogin, NotFound, BadResponse @@ -77,9 +78,11 @@ class ShellyGen1(ShellyBase): print("Target Adress: {}\n" "Authentication: {}\n" "Timeout: {}" - "".format(url, any(self.__credentials__.username + self.__credentials__.password), self.__timeout__)) + "".format(url, any(self.__credentials__), self.__timeout__)) - response = post(url, auth=self.__credentials__, + credentials = HTTPBasicAuth(*self.__credentials__) + + response = post(url, auth=credentials, timeout=self.__timeout__) if response.status_code == 401: diff --git a/ShellyPy/gen2.py b/ShellyPy/gen2.py index 96747c9..e94a1f0 100644 --- a/ShellyPy/gen2.py +++ b/ShellyPy/gen2.py @@ -6,6 +6,7 @@ else: JSONDecodeError = ValueError from requests import post +from requests.auth import HTTPDigestAuth from .error import BadLogin, NotFound, BadResponse @@ -50,7 +51,13 @@ class ShellyGen2(ShellyBase): if values: payload["params"] = values - response = post(url, auth=self.__credentials__, + credentials = None + try: + credentials = auth=HTTPDigestAuth('admin', self.__credentials__[1]) + except IndexError: + pass + + response = post(url, auth=credentials, json=payload, timeout=self.__timeout__) |