Ver código fonte

Improve saving to database

JoostSijm 6 anos atrás
pai
commit
439a0f5c28
3 arquivos alterados com 25 adições e 24 exclusões
  1. 1 10
      app/__main__.py
  2. 8 9
      app/app.py
  3. 16 5
      app/database.py

+ 1 - 10
app/__main__.py

@@ -3,25 +3,16 @@
 import time
 import time
 
 
 from app import SCHEDULER, LOGGER
 from app import SCHEDULER, LOGGER
-from app.app import print_offers
 from app.api import get_player_market, get_state_market
 from app.api import get_player_market, get_state_market
 from app.database import save_resource_market
 from app.database import save_resource_market
 
 
 
 
-def print_player_market(player_market):
-    """Print player market"""
-    for item in player_market:
-        print('{:3} {:5}'.format(
-            item['id'],
-            item['price'],
-        ))
-
 def job_update_resource_market():
 def job_update_resource_market():
     """Update market"""
     """Update market"""
     LOGGER.info('Get player market')
     LOGGER.info('Get player market')
     player_market = get_player_market()
     player_market = get_player_market()
     LOGGER.info('Got player market')
     LOGGER.info('Got player market')
-    print_offers(player_market)
+    # print_offers(player_market)
 
 
     LOGGER.info('Get state market')
     LOGGER.info('Get state market')
     state_market = get_state_market()
     state_market = get_state_market()

+ 8 - 9
app/app.py

@@ -6,16 +6,15 @@ from app import MAX_OFFER
 
 
 def print_offers(market):
 def print_offers(market):
     """Print offers"""
     """Print offers"""
+    print('id     lowest       0.5T         1T         2T         5T')
     for resource_type, offers in market.items():
     for resource_type, offers in market.items():
-        purchage_money = 2e12
-        purchage_average = calculate_purchage_amount(offers, purchage_money)
-        money = MAX_OFFER[resource_type] * 5
-        price = calculate_price(offers, money)
-        print('{:2} {:15,} {:25,} {:15,}'.format(
-            resource_type, 
-            purchage_average / 100,
-            price,
+        print('{:2} {:10.2f} {:10.2f} {:10.2f} {:10.2f} {:10.2f}'.format(
+            resource_type,
             offers[0]['price'] / 100,
             offers[0]['price'] / 100,
+            calculate_purchage_amount(offers, 5e11) / 100,
+            calculate_purchage_amount(offers, 1e12) / 100,
+            calculate_purchage_amount(offers, 2e12) / 100,
+            calculate_purchage_amount(offers, 5e12) / 100,
         ).replace(',', '.'))
         ).replace(',', '.'))
 
 
 def calculate_price(offers, amount):
 def calculate_price(offers, amount):
@@ -23,7 +22,7 @@ def calculate_price(offers, amount):
     tmp_amount = amount
     tmp_amount = amount
     total_price = 0
     total_price = 0
     for offer in offers:
     for offer in offers:
-        buy_amount = offer['amount'] 
+        buy_amount = offer['amount']
         if buy_amount > tmp_amount:
         if buy_amount > tmp_amount:
             buy_amount = tmp_amount
             buy_amount = tmp_amount
         tmp_amount -= buy_amount
         tmp_amount -= buy_amount

+ 16 - 5
app/database.py

@@ -4,12 +4,16 @@ from datetime import datetime
 
 
 from app import SESSION
 from app import SESSION
 from app.models import State, Region, Player, MarketTrack, StateMarketStat, PlayerMarketStat
 from app.models import State, Region, Player, MarketTrack, StateMarketStat, PlayerMarketStat
+from app.app import calculate_purchage_amount
 
 
 
 
-def get_new_market_track(session):
+def get_new_market_track(session, resources, state_resources, items):
     """Get ner market track"""
     """Get ner market track"""
     market_track = MarketTrack()
     market_track = MarketTrack()
     market_track.date_time = datetime.now()
     market_track.date_time = datetime.now()
+    market_track.resources = resources
+    market_track.state_resources = state_resources
+    market_track.items = items
     session.add(market_track)
     session.add(market_track)
     return market_track
     return market_track
 
 
@@ -17,19 +21,19 @@ def save_resource_market(player_market, state_market):
     """Save factories to database"""
     """Save factories to database"""
     session = SESSION()
     session = SESSION()
 
 
-    market_track = get_new_market_track(session)
+    market_track = get_new_market_track(session, True, True, False)
     market_track.player_resources = True
     market_track.player_resources = True
     market_track.state_resources = True
     market_track.state_resources = True
     _save_player_market(session, market_track, player_market)
     _save_player_market(session, market_track, player_market)
     _save_state_market(session, market_track, state_market)
     _save_state_market(session, market_track, state_market)
 
 
-    # session.commit()
+    session.commit()
     session.close()
     session.close()
 
 
 def save_player_market(market):
 def save_player_market(market):
     """Save player market"""
     """Save player market"""
     session = SESSION()
     session = SESSION()
-    market_track = get_new_market_track(session)
+    market_track = get_new_market_track(session, True, False, False)
     session.add(market_track)
     session.add(market_track)
     _save_player_market(session, market_track, market)
     _save_player_market(session, market_track, market)
 
 
@@ -46,15 +50,22 @@ def _save_player_market(session, market_track, market):
         market_stat.total_offers = len(offers)
         market_stat.total_offers = len(offers)
         market_stat.amount = item_dict['amount']
         market_stat.amount = item_dict['amount']
         market_stat.price = item_dict['price']
         market_stat.price = item_dict['price']
+        market_stat.half_t_average = calculate_purchage_amount(offers, 5e11)
+        market_stat.one_t_average = calculate_purchage_amount(offers, 1e12)
+        market_stat.two_t_average = calculate_purchage_amount(offers, 2e12)
+        market_stat.five_t_average = calculate_purchage_amount(offers, 5e12)
         market_stat.market_track_id = market_track.id
         market_stat.market_track_id = market_track.id
         session.add(market_stat)
         session.add(market_stat)
 
 
 def _save_state_market(session, market_track, market):
 def _save_state_market(session, market_track, market):
     """Save state market"""
     """Save state market"""
     for item_dict in market:
     for item_dict in market:
-        print(item_dict)
         market_stat = StateMarketStat()
         market_stat = StateMarketStat()
         market_stat.market_track_id = market_track.id
         market_stat.market_track_id = market_track.id
+        market_stat.item_type = item_dict['item_type'] - 1000
+        market_stat.region_id = item_dict['region_id']
+        market_stat.amount = item_dict['amount']
+        market_stat.price = item_dict['price']
         session.add(market_stat)
         session.add(market_stat)