web-ws.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env python3
  2. import os
  3. import json
  4. from datetime import datetime
  5. from websocket_server import WebsocketServer
  6. from qmanager import qManager
  7. import urllib
  8. # Port on which server will run.
  9. PORT = 8080
  10. BASE_PATH='/backend/' #changes based on webserver
  11. last_msg = datetime.now()
  12. # client.list_objects_v2(Bucket=constants.PROCESSED_FILE_BUCKET)
  13. def send_status(server, client=None, force=False):
  14. global last_msg
  15. if client is None and not force:
  16. if (datetime.now() - last_msg).total_seconds() < 2:
  17. return
  18. last_msg = datetime.now()
  19. #status = { 'SEARCH': q.search_status(), 'BOOKS': q.books_status()}
  20. status = None
  21. if client is None:
  22. ws.send_message_to_all(json.dumps(status))
  23. else:
  24. server.send_message(client, json.dumps(status))
  25. def new_client(client, server):
  26. send_status(server, client)
  27. def message_received(client, server, message):
  28. j = json.loads(message)
  29. print(j)
  30. if j['type'].upper() == 'SEARCH':
  31. #q.new_search(j['book'], j['extension'])
  32. pass
  33. if j['type'].upper() == 'BOOK':
  34. pass
  35. send_status(server)
  36. def updated(force=False):
  37. send_status(ws, force=force)
  38. if __name__ == '__main__':
  39. ws = WebsocketServer(8081, host='127.0.0.1')
  40. ws.set_fn_new_client(new_client)
  41. ws.set_fn_message_received(message_received)
  42. ws.run_forever()