diff --git a/app.py b/app.py index fff61f5..1365086 100644 --- a/app.py +++ b/app.py @@ -1,18 +1,22 @@ import os, json, logging, requests, re, time from datetime import datetime +import pytz from flask import Flask, render_template, redirect, url_for from bs4 import BeautifulSoup from apscheduler.schedulers.background import BackgroundScheduler app = Flask(__name__) -logging.basicConfig(level=logging.INFO, format='%(message)s') +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger("CineSynthese") CACHE_FILE = "/data/movies_cache.json" HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'} +# --- CONFIGURATION FUSEAU HORAIRE --- +paris_tz = pytz.timezone("Europe/Paris") + def get_today_formats(): - now = datetime.now() + now = datetime.now(paris_tz) jours_courts = ["Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"] day_short = jours_courts[now.weekday()] return { @@ -131,7 +135,11 @@ def update_all_data(): try: data = scrape_abc() + scrape_cratere() + scrape_cosmo() data = sorted(data, key=lambda x: x['times'][0] if x['times'] else "99:99") - payload = {"last_update": datetime.now().strftime("%d/%m/%Y à %H:%M"), "movies": data} + + # Heure de mise à jour calée sur Paris + now_paris = datetime.now(paris_tz) + payload = {"last_update": now_paris.strftime("%d/%m/%Y à %H:%M"), "movies": data} + os.makedirs(os.path.dirname(CACHE_FILE), exist_ok=True) with open(CACHE_FILE, 'w') as f: json.dump(payload, f) return payload @@ -139,7 +147,8 @@ def update_all_data(): logger.error(f"Erreur MAJ: {e}") return None -scheduler = BackgroundScheduler() +# --- SCHEDULER CALÉ SUR PARIS --- +scheduler = BackgroundScheduler(timezone=paris_tz) scheduler.add_job(func=update_all_data, trigger="cron", hour=0, minute=5) scheduler.start() diff --git a/docker-compose.yml b/docker-compose.yml index 930200e..41d6455 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,8 @@ services: container_name: cine_toulouse ports: - "5001:5000" + environment: + - TZ=Europe/Paris volumes: # On lie le dossier ./data du NUC au dossier /data du conteneur - ./data:/data diff --git a/requirements.txt b/requirements.txt index 3b2b2c6..6caed33 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ beautifulsoup4 thefuzz gunicorn apscheduler +pytz