From 878fa8833169d0b08a75ff30e079ed8ca4182561 Mon Sep 17 00:00:00 2001 From: Gentile G Date: Fri, 20 Oct 2023 17:10:36 +0200 Subject: [PATCH] Improving login mechanism --- mw40v.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mw40v.py b/mw40v.py index b9dd3cd..a7c462c 100644 --- a/mw40v.py +++ b/mw40v.py @@ -12,6 +12,9 @@ class Mw40V: self.login_token = None def request(self, method, params, id): + if self.login_token is None and method != 'Login': + self.login(self.username, self.password) + body = { "jsonrpc": "2.0", "method": method, @@ -25,7 +28,13 @@ class Mw40V: headers=self.headers(method) ) - if 'result' in r.json(): + if 'error' in r.json(): + if r.json()['error']['message'] == 'Authentication Failure': + self.login_token = None + self.request(self, method, params, id) + else: + raise Exception(r.json()['error']) + elif 'result' in r.json(): return r.json()['result'] else: return {} @@ -53,7 +62,6 @@ class Mw40V: self.login_token = result['token'] def connect(self): - self.login(self.username, self.password) result = self.request( "Connect", None, @@ -63,7 +71,6 @@ class Mw40V: return result def disconnect(self): - self.login(self.username, self.password) result = self.request( "DisConnect", None,