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("--password", dest="password", help="Password for authentication against the device")
|
||||
|
||||
def main():
|
||||
subparsers = parser.add_subparsers()
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
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():
|
||||
def run_status(m):
|
||||
if m.is_logged_in():
|
||||
print("Is logged in")
|
||||
else:
|
||||
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__":
|
||||
main()
|
||||
|
@@ -5,6 +5,8 @@ import urllib
|
||||
|
||||
class Mu5001Tool:
|
||||
def __init__(self, host="http://192.168.0.1"):
|
||||
self._password = None
|
||||
|
||||
self.host = host
|
||||
self.session = requests.Session()
|
||||
|
||||
@@ -36,6 +38,9 @@ class Mu5001Tool:
|
||||
"cmd": "LD",
|
||||
}).get("LD")
|
||||
|
||||
def set_password(self, password):
|
||||
self._password = password
|
||||
|
||||
def hashed_login_password(self, password):
|
||||
ld = self.get_ld()
|
||||
|
||||
@@ -44,7 +49,13 @@ class Mu5001Tool:
|
||||
|
||||
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({
|
||||
"goformId": "LOGIN",
|
||||
"password": self.hashed_login_password(password),
|
||||
|
Reference in New Issue
Block a user