Parcourir la source

Merge branch 'master' of git.craftbroec.nl:VBOO/dts

JoostSijm il y a 5 ans
Parent
commit
723b477347
3 fichiers modifiés avec 27 ajouts et 11 suppressions
  1. 8 1
      app/__init__.py
  2. 9 4
      app/__main__.py
  3. 10 6
      app/database.py

+ 8 - 1
app/__init__.py

@@ -1,6 +1,7 @@
 """Init"""
 
 import os
+import logging
 
 from sqlalchemy import create_engine
 from sqlalchemy.orm import sessionmaker
@@ -15,12 +16,18 @@ load_dotenv()
 # database
 engine = create_engine(os.environ["DATABASE_URI"], client_encoding='utf8')
 Session = sessionmaker(bind=engine)
-session = Session()
 
 # scheduler
 scheduler = BackgroundScheduler()
 scheduler.start()
 
+# logging
+logging.basicConfig(
+    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
+    level=logging.INFO
+)
+LOGGER = logging.getLogger(__name__)
+
 # api
 BASE_URL = os.environ["API_URL"]
 HEADERS = {

+ 9 - 4
app/__main__.py

@@ -2,20 +2,26 @@
 
 import time
 
-from app import scheduler, session
+from app import scheduler, LOGGER
 from app.api import get_professors
 from app.database import get_latest_professor, save_professors
 
 
 def job_update_department(state_id, department_type):
     """Update department professors"""
+    LOGGER.info('"%s": Run update for "%s" department for state', state_id, department_type)
     latest_professor = get_latest_professor(state_id, department_type)
     date = None
     if latest_professor:
         date = latest_professor.date_time
     professors = get_professors(state_id, department_type, date)
-    print_professors(professors)
+    LOGGER.info(
+        '"%s": Found "%s" new professors in "%s" department',
+        state_id, len(professors), department_type
+    )
+    # print_professors(professors)
     save_professors(state_id, department_type, professors)
+    LOGGER.info('"%s": saved professors', state_id)
 
 def print_professors(professors):
     """Print professors"""
@@ -39,7 +45,7 @@ def add_update_department(state_id, department_type):
 
 if __name__ == '__main__':
     # jobs
-    # job_update_department(2788, 6)
+    # job_update_department(2788, 2)
     # VN
     # uranium
     add_update_department(2788, 6)
@@ -61,5 +67,4 @@ if __name__ == '__main__':
             time.sleep(100)
     except KeyboardInterrupt:
         print('Exiting application')
-        session.close()
         exit()

+ 10 - 6
app/database.py

@@ -1,16 +1,18 @@
 """Database module"""
 
-from app import session
+from app import Session
 from app.models import Player, Department, DepartmentStat
 
 
 def get_latest_professor(state_id, department_type):
     """Get latest professor from database"""
-    department = get_department(state_id, department_type)
+    session = Session()
+    department = get_department(session, state_id, department_type)
     professor = department.department_stats.order_by(DepartmentStat.date_time.desc()).first()
+    session.close()
     return professor
 
-def get_player(player_id, player_name):
+def get_player(session, player_id, player_name):
     """Get player from database"""
     player = session.query(Player).get(player_id)
     if player is None:
@@ -21,7 +23,7 @@ def get_player(player_id, player_name):
         session.commit()
     return player
 
-def get_department(state_id, department_type):
+def get_department(session, state_id, department_type):
     """Get department from database"""
     department = session.query(Department).filter(
         Department.state_id == state_id
@@ -38,10 +40,11 @@ def get_department(state_id, department_type):
 
 def save_professors(state_id, department_type, professors):
     """Save professors to database"""
-    department = get_department(state_id, department_type)
+    session = Session()
+    department = get_department(session, state_id, department_type)
 
     for professor in professors:
-        player = get_player(professor['id'], professor['name'])
+        player = get_player(session, professor['id'], professor['name'])
         department_stat = DepartmentStat()
         department_stat.department_id = department.id
         department_stat.date_time = professor['date_time']
@@ -49,3 +52,4 @@ def save_professors(state_id, department_type, professors):
         department_stat.player_id = player.id
         session.add(department_stat)
     session.commit()
+    session.close()