Browse Source

Fix issue with date, schedule WP jobs

JoostSijm 5 years ago
parent
commit
a688760276
3 changed files with 20 additions and 7 deletions
  1. 16 4
      app/__main__.py
  2. 1 1
      app/api.py
  3. 3 2
      app/database.py

+ 16 - 4
app/__main__.py

@@ -10,10 +10,9 @@ from app.database import get_state_regions, save_citizens, save_residents, save_
 def print_players(players):
     """Print professors"""
     for player in players:
-        print('{:20} {:30} {:20} {:30}'.format(
+        print('{:20} {:30} {:30}'.format(
             player['id'],
             player['name'],
-            player['registration_date'].strftime('%d-%m-%Y'),
             player['nation'],
         ))
 
@@ -46,7 +45,7 @@ def job_update_work_permits(state_id):
     LOGGER.info('"%s": get work permits ', state_id)
     work_permits = get_work_permits(state_id)
     LOGGER.info('"%s": "%s" work permits', state_id, len(work_permits))
-    print_players(work_permits)
+    # print_players(work_permits)
     save_work_permits(state_id, work_permits)
     LOGGER.info('"%s": done saving work_permits', state_id)
 
@@ -73,22 +72,35 @@ def add_update_residents(state_id):
         hour='1,7,13,19'
     )
 
+def add_update_work_permits(state_id):
+    """Add jobs"""
+    scheduler.add_job(
+        job_update_work_permits,
+        'cron',
+        args=[state_id],
+        id='work_permits_{}'.format(state_id),
+        replace_existing=True,
+        hour='4'
+    )
 
 if __name__ == '__main__':
     # jobs
     # job_update_citizens(2788)
     # job_update_residents(2788)
-    job_update_work_permits(2788)
+    # job_update_work_permits(2788)
 
     # Verenigde Nederlanden
     add_update_citizens(2788)
     add_update_residents(2788)
+    add_update_work_permits(2788)
     # Belgium
     add_update_citizens(2604)
     add_update_residents(2604)
+    add_update_work_permits(2604)
     # De Provincien
     add_update_citizens(2620)
     add_update_residents(2620)
+    add_update_work_permits(2620)
 
     try:
         while True:

+ 1 - 1
app/api.py

@@ -70,7 +70,7 @@ def parse_work_permits(html):
             'id': int(columns[1].find(class_='small')['user']),
             'name': columns[1].contents[0].strip(),
             'nation': columns[5]['title'],
-            'registration_date': registration_date
+            'from': registration_date
         })
     return players, bool(len(players_tree) >= 25)
 

+ 3 - 2
app/database.py

@@ -68,7 +68,7 @@ def save_work_permits(state_id, work_permits):
             state_work_permit = StateWorkPermit()
             state_work_permit.player_id = player.id
             state_work_permit.state_id = state_id
-            state_work_permit.from_date_time = datetime.now()
+            state_work_permit.from_date_time = player_dict['from']
             session.add(state_work_permit)
             session.commit()
             if last_work_permit:
@@ -85,7 +85,8 @@ def save_player(player_dict):
     player.id = player_dict['id']
     player.name = player_dict['name']
     player.nation = player_dict['nation']
-    player.registration_date = player_dict['registration_date']
+    if 'registration_date' in player_dict:
+        player.registration_date = player_dict['registration_date']
     session.add(player)
     session.commit()
     return player