main.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import model
  2. import sys
  3. import stocks
  4. import view
  5. import database
  6. """
  7. This is the controller file
  8. """
  9. if __name__ == '__main__':
  10. db = database.db
  11. timestamp_latest = model.get_timestamp_latest(db)
  12. timestamp_stored = model.get_timestamp_stored()
  13. if timestamp_latest == timestamp_stored:
  14. """Nothing to do"""
  15. sys.exit()
  16. # Update timestamp_stored
  17. model.put_timestamp_stored(timestamp_latest)
  18. timestamp_previous = model.get_timestamp_previous(db)
  19. for stock in stocks.stocks:
  20. stock_id = stock[1]
  21. data_previous = model.get_data(stock_id, timestamp_previous, db)
  22. data_latest = model.get_data(stock_id, timestamp_latest, db)
  23. threshold = stock[3]
  24. max_price = stock[2]
  25. is_drop = model.process_data(data_previous, data_latest, max_price, threshold)
  26. current_price = float(data_latest.current_price)
  27. quantity = data_latest.available_shares - data_previous.available_shares
  28. stock_name = stock[0]
  29. message = view.create_message(
  30. stock_name, timestamp_latest, current_price, quantity)
  31. print(message)
  32. if is_drop:
  33. view.broadcast(message)
  34. db.close()