switched from prints to loggers with log levels
This commit is contained in:
+10
-5
@@ -1,5 +1,7 @@
|
||||
from flask import Flask, jsonify, render_template
|
||||
import logging
|
||||
import os, sys, threading, time
|
||||
|
||||
from src.parser import (
|
||||
get_this_semesters_sessions,
|
||||
calculate_totals,
|
||||
@@ -9,19 +11,22 @@ from src.parser import (
|
||||
from src.cache import Cache
|
||||
|
||||
app = Flask(__name__)
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
sessions_cache = Cache()
|
||||
|
||||
REFETCH_MINUTES = os.environ.get("REFETCH_INTERVAL_MINUTES", "5")
|
||||
if not REFETCH_MINUTES.isdigit():
|
||||
print("Invalid refetch interval")
|
||||
app.logger.error("Invalid refetch interval")
|
||||
sys.exit(1)
|
||||
REFETCH_SECONDS = int(REFETCH_MINUTES) * 60
|
||||
|
||||
# initial data fetch (required to work)
|
||||
try:
|
||||
sessions_cache.set(get_this_semesters_sessions())
|
||||
sessions = get_this_semesters_sessions()
|
||||
sessions_cache.set(sessions)
|
||||
app.logger.info(f"Fetched {len(sessions)} sessions from calDAV server")
|
||||
except Exception:
|
||||
print("Failed to fetch from calDAV server.")
|
||||
app.logger.exception("Failed to fetch from calDAV server.")
|
||||
sys.exit(1)
|
||||
|
||||
# web ui
|
||||
@@ -55,9 +60,9 @@ def fetch_job():
|
||||
time.sleep(REFETCH_SECONDS)
|
||||
try:
|
||||
sessions_cache.set(get_this_semesters_sessions())
|
||||
print("Successfully fetched data from calDAV")
|
||||
app.logger.info(f"Fetched {len(sessions)} sessions from calDAV server")
|
||||
except Exception:
|
||||
print("Failed to refresh from calDAV server, keeping old data.")
|
||||
app.logger.warning("Failed to fetch from calDAV server, keeping old data")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if os.environ.get("WERKZEUG_RUN_MAIN") == "true" or not app.debug:
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
import logging
|
||||
|
||||
from dotenv import load_dotenv
|
||||
from datetime import datetime, timedelta, date, time as dtime
|
||||
|
||||
from zoneinfo import ZoneInfo
|
||||
import caldav, os, random
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# load settings from .env
|
||||
try:
|
||||
load_dotenv()
|
||||
@@ -14,7 +18,7 @@ try:
|
||||
SEMESTER_STARTS = os.environ["SEMESTER_STARTS"]
|
||||
if SEMESTER_STARTS: SEMESTER_STARTS = SEMESTER_STARTS.split(",")
|
||||
except Exception:
|
||||
print("Failed to read settings from .env!\nTake a look at .env.example for the required structure!")
|
||||
logger.error("Failed to read settings from .env!\nTake a look at .env.example for the required structure!")
|
||||
|
||||
client = caldav.DAVClient(
|
||||
url=CALDAV_URL,
|
||||
@@ -52,7 +56,7 @@ def get_all_sessions() -> list:
|
||||
def get_this_semesters_sessions() -> list:
|
||||
sessions = get_all_sessions()
|
||||
semester_start = get_current_semester_start()
|
||||
print(f"grabbing sessions since {str(semester_start)}")
|
||||
logger.info(f"keeping sessions after semester start [{str(semester_start)}]")
|
||||
|
||||
if not semester_start:
|
||||
# no semester starts given, just pass all sessions
|
||||
@@ -67,7 +71,6 @@ def get_this_semesters_sessions() -> list:
|
||||
# or return None if no semesters were specified
|
||||
def get_current_semester_start() -> date:
|
||||
if not SEMESTER_STARTS: # array of MM-DD strings
|
||||
print("no starts")
|
||||
return None
|
||||
|
||||
# first check if one the dates was previously this year
|
||||
@@ -76,7 +79,7 @@ def get_current_semester_start() -> date:
|
||||
try:
|
||||
dates = [datetime.strptime(str(today.year)+"-"+date_str, "%Y-%m-%d").date() for date_str in SEMESTER_STARTS]
|
||||
except Exception:
|
||||
print("Failed to parse semester start date. Falling back to None!")
|
||||
logger.warning("Failed to parse semester start date. Falling back to None!")
|
||||
return None
|
||||
|
||||
for date in dates:
|
||||
@@ -93,7 +96,7 @@ def get_current_semester_start() -> date:
|
||||
try:
|
||||
last_year_dates = [date.replace(year=date.year - 1) for date in dates]
|
||||
except Exception:
|
||||
print("Failed to parse semester start date. Falling back to None!")
|
||||
logger.warning("Failed to parse semester start date. Falling back to None!")
|
||||
return None
|
||||
|
||||
return max(last_year_dates)
|
||||
|
||||
Reference in New Issue
Block a user