database.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. """Database module"""
  2. from datetime import datetime
  3. from app import SESSION
  4. from app.models import State, Region, Player, MarketTrack, StateMarketStat, PlayerMarketStat
  5. def get_new_market_track(session):
  6. """Get ner market track"""
  7. market_track = MarketTrack()
  8. market_track.date_time = datetime.now()
  9. session.add(market_track)
  10. return market_track
  11. def save_resource_market(player_market, state_market):
  12. """Save factories to database"""
  13. session = SESSION()
  14. market_track = get_new_market_track(session)
  15. market_track.player_resources = True
  16. market_track.state_resources = True
  17. _save_player_market(session, market_track, player_market)
  18. _save_state_market(session, market_track, state_market)
  19. # session.commit()
  20. session.close()
  21. def save_player_market(market):
  22. """Save player market"""
  23. session = SESSION()
  24. market_track = get_new_market_track(session)
  25. session.add(market_track)
  26. _save_player_market(session, market_track, market)
  27. def _save_player_market(session, market_track, market):
  28. """Save player market to database"""
  29. for item_type, offers in market.items():
  30. item_dict = offers[0]
  31. market_stat = PlayerMarketStat()
  32. player = session.query(Player).get(item_dict['player_id'])
  33. if not player:
  34. player = save_player(session, item_dict)
  35. market_stat.player_id = player.id
  36. market_stat.item_type = item_type
  37. market_stat.total_offers = len(offers)
  38. market_stat.amount = item_dict['amount']
  39. market_stat.price = item_dict['price']
  40. market_stat.market_track_id = market_track.id
  41. session.add(market_stat)
  42. def _save_state_market(session, market_track, market):
  43. """Save state market"""
  44. for item_dict in market:
  45. print(item_dict)
  46. market_stat = StateMarketStat()
  47. market_stat.market_track_id = market_track.id
  48. session.add(market_stat)
  49. def save_player(session, item_dict):
  50. """Save player to database"""
  51. player = Player()
  52. player.id = item_dict['player_id']
  53. player.name = item_dict['player_name']
  54. session.add(player)
  55. return player