timezone config fix

This commit is contained in:
2026-08-07 13:18:33 +02:00
parent d458c58c64
commit 5cdefff6f5
4 changed files with 17 additions and 17 deletions
+5 -5
View File
@@ -22,7 +22,7 @@ from starlette.middleware.sessions import SessionMiddleware
import db
from api.auth import get_current_user, resolve_account_for_user
from api.schemas import ContactListResponse, ContactOut, SyncRunOut
from config import TIMEZONE, Config
from config import Config
from mailer import build_message, fetch_birthdays_for_date, send_message
logging.basicConfig(level=Config.LOG_LEVEL, format="%(asctime)s [%(levelname)s] %(message)s")
@@ -41,7 +41,7 @@ def _fmt_ts(dt) -> str | None:
if dt.tzinfo is None:
from datetime import timezone
dt = dt.replace(tzinfo=timezone.utc)
return dt.astimezone(TIMEZONE).strftime("%d.%m.%Y %H:%M:%S")
return dt.astimezone(Config.TIMEZONE).strftime("%d.%m.%Y %H:%M:%S")
def _row_to_contact_out(row: dict) -> dict:
@@ -137,7 +137,7 @@ def get_contact(contact_id: int, current_user: str = Depends(get_current_user)):
@app.get("/api/contacts/birthdays/today", response_model=list[ContactOut])
def birthdays_today(current_user: str = Depends(get_current_user)):
account_name, is_admin = resolve_account_for_user(current_user)
today = datetime.now(TIMEZONE).date()
today = datetime.now(Config.TIMEZONE).date()
with db.get_connection() as conn:
where_clause, params = _account_filter_clause(account_name)
@@ -253,8 +253,8 @@ def web_dashboard(
"upcoming_birthdays": upcoming_birthdays,
"last_sync": last_sync,
"last_sync_with_changes": last_sync_with_changes,
"current_year": datetime.now(TIMEZONE).date().year,
"today": datetime.now(TIMEZONE).date(),
"current_year": datetime.now(Config.TIMEZONE).date().year,
"today": datetime.now(Config.TIMEZONE).date(),
},
)
+2 -2
View File
@@ -10,7 +10,7 @@ from datetime import datetime, timezone
import pymysql
from pymysql.cursors import DictCursor
from config import TIMEZONE, Config
from config import Config
logger = logging.getLogger(__name__)
@@ -219,7 +219,7 @@ def search_contacts_without_social(conn, account: str | None) -> list[dict]:
def get_upcoming_birthdays(conn, account: str | None, days: int = 7) -> list[dict]:
where_clause, params = _account_filter_clause(account)
today = datetime.now(TIMEZONE).date()
today = datetime.now(Config.TIMEZONE).date()
with conn.cursor() as cur:
cur.execute(
f"""SELECT id, full_name, given_name, middle_name, family_name,
+5 -5
View File
@@ -12,7 +12,7 @@ from datetime import date, datetime
from email.message import EmailMessage
import db
from config import TIMEZONE, Config
from config import Config
logging.basicConfig(level=Config.LOG_LEVEL, format="%(asctime)s [%(levelname)s] %(message)s")
logger = logging.getLogger("mailer")
@@ -33,18 +33,18 @@ def fetch_birthdays_for_date(conn, target_date: date) -> list[dict]:
def fetch_todays_birthdays(conn) -> list[dict]:
return fetch_birthdays_for_date(conn, datetime.now(TIMEZONE).date())
return fetch_birthdays_for_date(conn, datetime.now(Config.TIMEZONE).date())
def already_sent_today(conn) -> bool:
today = datetime.now(TIMEZONE).date()
today = datetime.now(Config.TIMEZONE).date()
with conn.cursor() as cur:
cur.execute("SELECT 1 FROM birthday_mail_log WHERE sent_date = %s", (today,))
return cur.fetchone() is not None
def log_sent(conn, count: int):
today = datetime.now(TIMEZONE).date()
today = datetime.now(Config.TIMEZONE).date()
with conn.cursor() as cur:
cur.execute(
"INSERT INTO birthday_mail_log (sent_date, contacts_count) VALUES (%s, %s)",
@@ -54,7 +54,7 @@ def log_sent(conn, count: int):
def build_message(birthdays: list[dict], target_date: date | None = None) -> EmailMessage:
today = target_date or datetime.now(TIMEZONE).date()
today = target_date or datetime.now(Config.TIMEZONE).date()
msg = EmailMessage()
msg["From"] = Config.MAIL_FROM
msg["To"] = Config.MAIL_TO
+5 -5
View File
@@ -19,7 +19,7 @@ import time
from datetime import datetime, timedelta
import db
from config import TIMEZONE
from config import Config
logging.basicConfig(
level=os.environ.get("LOG_LEVEL", "INFO"),
@@ -63,7 +63,7 @@ def run_sync():
run_script("Sync", "/app/sync.py")
try:
with open("/tmp/last_sync_ok", "w") as f:
f.write(datetime.now(TIMEZONE).isoformat())
f.write(datetime.now(Config.TIMEZONE).isoformat())
except OSError:
pass
@@ -75,7 +75,7 @@ def run_mailer():
def next_run_time(hour: int) -> datetime:
now = datetime.now(TIMEZONE)
now = datetime.now(Config.TIMEZONE)
target = now.replace(hour=hour, minute=0, second=0, microsecond=0)
if target <= now:
target += timedelta(days=1)
@@ -104,11 +104,11 @@ def main():
logger.info("Starte ersten Sync-Lauf...")
run_sync()
last_sync = datetime.now(TIMEZONE)
last_sync = datetime.now(Config.TIMEZONE)
next_mailer = next_run_time(MAIL_SEND_HOUR)
while not _shutdown:
now = datetime.now(TIMEZONE)
now = datetime.now(Config.TIMEZONE)
if now >= last_sync + timedelta(minutes=SYNC_INTERVAL_MINUTES):
run_sync()