Browse Source

Improve tracking

JoostSijm 5 years ago
parent
commit
66603f54a0
2 changed files with 21 additions and 15 deletions
  1. 9 9
      app/__main__.py
  2. 12 6
      app/database.py

+ 9 - 9
app/__main__.py

@@ -21,33 +21,33 @@ def job_update_citizens(state_id):
     LOGGER.info('Run update citizens for state "%s"', state_id)
     regions = get_state_regions(state_id)
     for region in regions:
-        LOGGER.info('"%s": get citizens', region.name)
+        LOGGER.info('regio %6s: get citizens', region.id)
         citizens = get_citizens(region.id)
-        LOGGER.info('"%s": "%s" citizens', region.name, len(citizens))
+        LOGGER.info('regio %6s: "%s" citizens', region.id, len(citizens))
         # print_players(citizens)
         save_citizens(region.id, citizens)
-        LOGGER.info('"%s": done saving citizens', region.name)
+        LOGGER.info('regio %6s: done saving citizens', region.id)
 
 def job_update_residents(state_id):
     """Update residents"""
     LOGGER.info('Run update residents for state "%s"', state_id)
     regions = get_state_regions(state_id)
     for region in regions:
-        LOGGER.info('"%s": get residents', region.name)
+        LOGGER.info('regio %6s: get residents', region.id)
         residents = get_residents(region.id)
-        LOGGER.info('"%s": "%s" residents ', region.name, len(residents))
+        LOGGER.info('regio %6s: "%s" residents ', region.id, len(residents))
         # print_players(residents)
         save_residents(region.id, residents)
-        LOGGER.info('"%s": done saving residents', region.name)
+        LOGGER.info('regio %6s: done saving residents', region.id)
 
 def job_update_work_permits(state_id):
     """Update citizens"""
-    LOGGER.info('"%s": get work permits ', state_id)
+    LOGGER.info('state "%s": get work permits ', state_id)
     work_permits = get_work_permits(state_id)
-    LOGGER.info('"%s": "%s" work permits', state_id, len(work_permits))
+    LOGGER.info('state "%s": "%s" work permits', state_id, len(work_permits))
     # print_players(work_permits)
     save_work_permits(state_id, work_permits)
-    LOGGER.info('"%s": done saving work_permits', state_id)
+    LOGGER.info('state "%s": done saving work_permits', state_id)
 
 
 def add_update_citizens(state_id):

+ 12 - 6
app/database.py

@@ -2,7 +2,7 @@
 
 from datetime import datetime
 
-from app import Session
+from app import Session, LOGGER
 from app.models import State, Player, StateRegion, \
      PlayerLocation, PlayerResidency, StateWorkPermit
 
@@ -19,6 +19,7 @@ def save_citizens(region_id, citizens):
     """Save citizens to database"""
     session = Session()
     player_ids = []
+    new_citizens = 0
     for player_dict in citizens:
         player = session.query(Player).get(player_dict['id'])
         if player is None:
@@ -26,18 +27,23 @@ def save_citizens(region_id, citizens):
         player_ids.append(player.id)
         last_region = player.locations.first()
         if not last_region or last_region.id != region_id:
+            new_citizens += 1
             player_location = PlayerLocation()
             player_location.player_id = player.id
             player_location.region_id = region_id
-            player_location.from_date_time = datetime.now()
+            player_location.from_date_time = datetime.now().replace(second=0, minute=0)
             session.add(player_location)
+    LOGGER.info('regio %6s: "%s" new citizens', region_id, new_citizens)
     session.commit()
     current_citizens = session.query(PlayerLocation) \
         .filter(PlayerLocation.region_id == region_id) \
         .filter(PlayerLocation.until_date_time == None).all()
+    left_citizens = 0
     for current_citizen in current_citizens:
         if current_citizen.player_id not in player_ids:
-            current_citizen.until_date_time = datetime.now()
+            left_citizens += 1
+            current_citizen.until_date_time = datetime.now().replace(second=0, minute=0)
+    LOGGER.info('regio %6s: "%s" citizens left', region_id, left_citizens)
     session.commit()
     session.close()
 
@@ -56,7 +62,7 @@ def save_residents(region_id, residents):
             player_location = PlayerResidency()
             player_location.player_id = player.id
             player_location.region_id = region_id
-            player_location.from_date_time = datetime.now()
+            player_location.from_date_time = datetime.now().replace(second=0, minute=0)
             session.add(player_location)
             session.commit()
     current_residents = session.query(PlayerResidency) \
@@ -64,7 +70,7 @@ def save_residents(region_id, residents):
         .filter(PlayerResidency.until_date_time == None).all()
     for current_resident in current_residents:
         if current_resident.player_id not in player_ids:
-            current_resident.until_date_time = datetime.now()
+            current_resident.until_date_time = datetime.now().replace(second=0, minute=0)
     session.commit()
     session.close()
 
@@ -91,7 +97,7 @@ def save_work_permits(state_id, work_permits):
         .filter(StateWorkPermit.until_date_time == None).all()
     for current_work_permit in current_work_permits:
         if current_work_permit.player_id not in player_ids:
-            current_work_permit.until_date_time = datetime.now()
+            current_work_permit.until_date_time = datetime.now().replace(second=0, minute=0)
     session.commit()
     session.close()