Restructure command line
This commit is contained in:
@@ -8,28 +8,47 @@ parser = argparse.ArgumentParser(prog="mu5001tool")
|
|||||||
parser.add_argument("--stok", dest="stok", help="Initial session token to use for commands")
|
parser.add_argument("--stok", dest="stok", help="Initial session token to use for commands")
|
||||||
parser.add_argument("--password", dest="password", help="Password for authentication against the device")
|
parser.add_argument("--password", dest="password", help="Password for authentication against the device")
|
||||||
|
|
||||||
def main():
|
subparsers = parser.add_subparsers()
|
||||||
|
|
||||||
args = parser.parse_args()
|
def run_status(m):
|
||||||
|
if m.is_logged_in():
|
||||||
h = Mu5001Tool()
|
|
||||||
|
|
||||||
if args.stok is not None:
|
|
||||||
h.set_stok(args.stok)
|
|
||||||
|
|
||||||
if args.password is not None:
|
|
||||||
print(h.login(args.password))
|
|
||||||
|
|
||||||
if h.is_logged_in():
|
|
||||||
print("Is logged in")
|
print("Is logged in")
|
||||||
else:
|
else:
|
||||||
print("Is not logged in")
|
print("Is not logged in")
|
||||||
|
|
||||||
pprint(h.status())
|
pprint(m.status())
|
||||||
|
|
||||||
pprint(h.network_information())
|
pprint(m.network_information())
|
||||||
|
|
||||||
pprint(h.apn_info())
|
pprint(m.apn_info())
|
||||||
|
|
||||||
|
sp_status = subparsers.add_parser("status", help="General modem status information")
|
||||||
|
sp_status.set_defaults(func=run_status)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if "func" not in args:
|
||||||
|
parser.print_help()
|
||||||
|
exit()
|
||||||
|
|
||||||
|
function_arguments = dict(vars(args))
|
||||||
|
|
||||||
|
function_arguments.pop("func")
|
||||||
|
function_arguments.pop("stok")
|
||||||
|
function_arguments.pop("password")
|
||||||
|
|
||||||
|
m = Mu5001Tool()
|
||||||
|
|
||||||
|
if args.stok is not None:
|
||||||
|
m.set_stok(args.stok)
|
||||||
|
|
||||||
|
if args.password is not None:
|
||||||
|
m.set_password(args.password)
|
||||||
|
m.login()
|
||||||
|
|
||||||
|
args.func(m=m, **function_arguments)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@@ -5,6 +5,8 @@ import urllib
|
|||||||
|
|
||||||
class Mu5001Tool:
|
class Mu5001Tool:
|
||||||
def __init__(self, host="http://192.168.0.1"):
|
def __init__(self, host="http://192.168.0.1"):
|
||||||
|
self._password = None
|
||||||
|
|
||||||
self.host = host
|
self.host = host
|
||||||
self.session = requests.Session()
|
self.session = requests.Session()
|
||||||
|
|
||||||
@@ -36,6 +38,9 @@ class Mu5001Tool:
|
|||||||
"cmd": "LD",
|
"cmd": "LD",
|
||||||
}).get("LD")
|
}).get("LD")
|
||||||
|
|
||||||
|
def set_password(self, password):
|
||||||
|
self._password = password
|
||||||
|
|
||||||
def hashed_login_password(self, password):
|
def hashed_login_password(self, password):
|
||||||
ld = self.get_ld()
|
ld = self.get_ld()
|
||||||
|
|
||||||
@@ -44,7 +49,13 @@ class Mu5001Tool:
|
|||||||
|
|
||||||
return login_sha256(login_sha256(password) + ld)
|
return login_sha256(login_sha256(password) + ld)
|
||||||
|
|
||||||
def login(self, password):
|
def login(self, password=None):
|
||||||
|
if password is None:
|
||||||
|
password = self._password
|
||||||
|
|
||||||
|
if password is None:
|
||||||
|
raise ValueError("No password provided")
|
||||||
|
|
||||||
return self.set_cmd_process({
|
return self.set_cmd_process({
|
||||||
"goformId": "LOGIN",
|
"goformId": "LOGIN",
|
||||||
"password": self.hashed_login_password(password),
|
"password": self.hashed_login_password(password),
|
||||||
|
Reference in New Issue
Block a user