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 self.login_token = None
def request(self, method, params, id): def request(self, method, params, id):
if self.login_token is None and method != 'Login':
self.login(self.username, self.password)
body = { body = {
"jsonrpc": "2.0", "jsonrpc": "2.0",
"method": method, "method": method,
@@ -25,7 +28,13 @@ class Mw40V:
headers=self.headers(method) 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'] return r.json()['result']
else: else:
return {} return {}
@@ -53,7 +62,6 @@ class Mw40V:
self.login_token = result['token'] self.login_token = result['token']
def connect(self): def connect(self):
self.login(self.username, self.password)
result = self.request( result = self.request(
"Connect", "Connect",
None, None,
@@ -63,7 +71,6 @@ class Mw40V:
return result return result
def disconnect(self): def disconnect(self):
self.login(self.username, self.password)
result = self.request( result = self.request(
"DisConnect", "DisConnect",
None, None,