diff --git a/fotograf-de-scraper/backend/publish_request_api.py b/fotograf-de-scraper/backend/publish_request_api.py index 1c5257b0b..989a03768 100644 --- a/fotograf-de-scraper/backend/publish_request_api.py +++ b/fotograf-de-scraper/backend/publish_request_api.py @@ -10,9 +10,14 @@ import time import asyncio from typing import List, Dict, Optional +from zoneinfo import ZoneInfo + router = APIRouter(prefix="/api/publish-request", tags=["publish-request"]) logger = logging.getLogger("publish-request") +# Timezone for Berlin +TZ_BERLIN = ZoneInfo("Europe/Berlin") + # Official Project Signature SIGNATURE_HTML = """

@@ -44,8 +49,8 @@ class SendReleaseRequest(BaseModel): async def delayed_send(emails: List[Dict[str, str]], scheduled_time: str, db_session_factory): try: - # Calculate delay - now = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=2))) # Berlin Time Approx + # Calculate delay using Berlin Timezone + now = datetime.datetime.now(TZ_BERLIN) target_h, target_m = map(int, scheduled_time.split(":")) target_time = now.replace(hour=target_h, minute=target_m, second=0, microsecond=0) @@ -53,7 +58,7 @@ async def delayed_send(emails: List[Dict[str, str]], scheduled_time: str, db_ses target_time += datetime.timedelta(days=1) delay_seconds = (target_time - now).total_seconds() - logger.info(f"Scheduling {len(emails)} emails for {scheduled_time} (in {delay_seconds} seconds)") + logger.info(f"Scheduling {len(emails)} emails for {scheduled_time} Berlin Time (in {delay_seconds} seconds)") await asyncio.sleep(delay_seconds)