run_server.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import sqlite3
  2. import time
  3. from bottle import run, response, route, redirect
  4. import connection
  5. import model
  6. import server_controller
  7. import trading_bot
  8. from debug import debug
  9. from server_controller import not_found
  10. if __name__ == '__main__':
  11. print('sqlite3.version', model.db.version)
  12. valid_routes = ['login',
  13. 'register',
  14. 'depot',
  15. 'activate_key',
  16. 'order', 'orders',
  17. 'news',
  18. 'trades',
  19. 'trades_on',
  20. 'orders_on',
  21. 'cancel_order',
  22. 'leaderboard',
  23. 'tradables',
  24. 'gift',
  25. 'change_password']
  26. @route('/<path>', method='POST')
  27. def process(path):
  28. start = time.clock()
  29. path = path.strip().lower()
  30. if path not in valid_routes:
  31. print('Processing time:', time.clock() - start)
  32. return not_found()
  33. response.content_type = 'application/json'
  34. method_to_call = getattr(server_controller, path)
  35. try:
  36. expired_orders = model.drop_expired_orders()
  37. trading_bot.notify_expired_orders(expired_orders)
  38. resp = method_to_call()
  39. if response.status_code == 200:
  40. model.connection.commit()
  41. else:
  42. model.connection.rollback()
  43. print('Processing time:', time.clock() - start)
  44. return resp
  45. except sqlite3.IntegrityError as e:
  46. print(e)
  47. model.connection.rollback()
  48. print('Processing time:', time.clock() - start)
  49. return server_controller.bad_request('Action violates database constraints.')
  50. @route('/', method='GET')
  51. def process():
  52. redirect('http://koljastrohm-games.com/downloads/orderer_installer.zip')
  53. run(host='0.0.0.0', port=connection.port, debug=debug)
  54. model.connection.close()