Improving login mechanism
This commit is contained in:
13
mw40v.py
13
mw40v.py
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user