client.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import sys
  2. import time
  3. import client_controller
  4. from util import debug
  5. def fake_loading_bar(msg,delay=0.100):
  6. if len(msg) >= 32:
  7. raise AssertionError('Loading bar label too larger')
  8. msg += ':'
  9. msg += ' ' * (32 - len(msg))
  10. print(msg, end='')
  11. sys.stdout.flush()
  12. for _ in range(50):
  13. if not debug:
  14. time.sleep(delay)
  15. print('#', end='')
  16. sys.stdout.flush()
  17. print('\n', end='')
  18. sys.stdout.flush()
  19. def load():
  20. print('Loading...')
  21. fake_loading_bar('Initializing fake loading bars')
  22. fake_loading_bar('Loading data from disk')
  23. fake_loading_bar('Loading available commands')
  24. fake_loading_bar('Updating indices')
  25. fake_loading_bar('Waiting')
  26. print('Done.\n\n')
  27. def welcome():
  28. print('''
  29. $$$$$$\ $$\
  30. $$ __$$\ $$ |
  31. $$ / $$ | $$$$$$\ $$$$$$$ | $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\
  32. $$ | $$ |$$ __$$\ $$ __$$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\
  33. $$ | $$ |$$ | \__|$$ / $$ |$$$$$$$$ |$$ | \__|$$$$$$$$ |$$ | \__|
  34. $$ | $$ |$$ | $$ | $$ |$$ ____|$$ | $$ ____|$$ |
  35. $$$$$$ |$$ | \$$$$$$$ |\$$$$$$$\ $$ | \$$$$$$$\ $$ |
  36. \______/ \__| \_______| \_______|\__| \_______|\__|
  37. To display an overview of available commands type \'help\'.
  38. ''')
  39. def one_command():
  40. cmd = input('*> ')
  41. cmds = cmd.split(';')
  42. for cmd in cmds:
  43. cmd = cmd.split(' ')
  44. if cmd[0] not in allowed_commands:
  45. print('Invalid command.')
  46. else:
  47. method_to_call = getattr(client_controller, cmd[0])
  48. try:
  49. method_to_call(*cmd[1:])
  50. except TypeError:
  51. print('Invalid command syntax.')
  52. if __name__ == '__main__':
  53. load()
  54. welcome()
  55. while True:
  56. one_command()
  57. allowed_commands = ['login', 'register', 'help']