Improving login mechanism

This commit is contained in:
2023-10-20 17:10:36 +02:00
parent 2f24a59111
commit 878fa88331

View File

@@ -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,