client_controller.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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=None, password=None, game_key=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. if game_key is None:
  41. print('Entering a game key will provide you with some starting money and other useful stuff.')
  42. game_key = input('Game key (leave empty if you don\'t have one): ')
  43. response = client_request('register', {"username": username, "password": password, "game_key": game_key})
  44. if 'error_message' in response:
  45. print('Registration failed with message:', response['error_message'])
  46. # noinspection PyShadowingBuiltins
  47. def help():
  48. print('Allowed commands:')
  49. for cmd in allowed_commands:
  50. this_module = sys.modules[__name__]
  51. method = getattr(this_module, cmd)
  52. params = inspect.signature(method).parameters
  53. num_args = len(params)
  54. if num_args > 0:
  55. print('`' + cmd + '`', 'takes the following', num_args, 'arguments:')
  56. for p in params:
  57. print(' -', p) # TODO print default value
  58. else:
  59. print('`' + cmd + '`', 'takes no arguments')