client_controller.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import getpass
  2. import inspect
  3. import sys
  4. import client
  5. import connection
  6. from client import allowed_commands
  7. from connection import client_request
  8. def login(username=None, password=None):
  9. if connection.session_id is not None:
  10. client.fake_loading_bar('Signing out', delay=0.025)
  11. connection.session_id = None
  12. if username is None:
  13. username = input('Username: ')
  14. if password is None:
  15. if sys.stdin.isatty():
  16. password = getpass.getpass('Password: ')
  17. else:
  18. password = input('Password: ')
  19. response = client_request('login', {"username": username, "password": password})
  20. success = 'session_id' in response
  21. if success:
  22. connection.session_id = response['session_id']
  23. print('Login successful.')
  24. else:
  25. if 'error_message' in response:
  26. print('Login failed with message:', response['error_message'])
  27. else:
  28. print('Login failed.')
  29. def register(username, password=None):
  30. if connection.session_id is not None:
  31. client.fake_loading_bar('Signing out', delay=0.025)
  32. connection.session_id = None
  33. if username is None:
  34. username = input('Username: ')
  35. if password is None:
  36. if sys.stdin.isatty():
  37. password = getpass.getpass('Password: ')
  38. else:
  39. password = input('Password: ')
  40. response = client_request('register', {"username": username, "password": password})
  41. success = 'session_id' in response
  42. if success:
  43. connection.session_id = response['session_id']
  44. print('Registration successful.')
  45. else:
  46. if 'error_message' in response:
  47. print('Registration failed with message:', response['error_message'])
  48. else:
  49. print('Registration failed.')
  50. def help():
  51. print('Allowed commands:')
  52. for cmd in allowed_commands:
  53. this_module = sys.modules[__name__]
  54. method = getattr(this_module, cmd[0])
  55. params = inspect.signature(method).parameters
  56. num_args = len(params)
  57. print(cmd, 'takes the following', num_args, 'arguments:')
  58. for p in params:
  59. print(' ', p) # TODO print default value