adding caching to presque gratos

This commit is contained in:
Gaël
2025-09-29 09:36:47 +02:00
parent 595c11eeb5
commit d08a598fd7
4 changed files with 258 additions and 0 deletions

View File

@@ -21,10 +21,13 @@ from bs4 import BeautifulSoup
from logging.handlers import RotatingFileHandler
from datetime import datetime, timedelta, timezone
import zoneinfo
from storage import Storage
from keys import xgp_key
LOG = logging.getLogger("bot_weekly")
LOG_PATTERN = logging.Formatter("%(asctime)s:%(levelname)s: [%(filename)s] %(message)s")
def setuplogger():
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(LOG_PATTERN)
@@ -505,6 +508,7 @@ def build_html(egs: List[Dict[str, Any]],
parts.append("</div>")
# --- Xbox Game Pass
parts.append("<h3>🟩 Xbox Game Pass — Récemment ajoutés</h3>")
if not xgp:
parts.append("<p>Pas d'entrées détectées.</p>")
@@ -568,6 +572,23 @@ async def run_weekly():
LOG.warning("XGP fetch failed: %s", e)
# Build HTML
store = Storage()
def keep_new(items, key_fn):
fresh = []
for it in items:
k = key_fn(it)
if not store.seen(k):
it["_dedup_key"] = k
fresh.append(it)
return fresh
# Fetch your three sources as you already do:
xgp_items = keep_new(xgp_items, xgp_key)
html_body, feature = build_html(egs_items, psplus_data, xgp_items)
# Title (FR)
start = (datetime.now(TZ) - timedelta(days=6)).strftime("%d/%m/%Y")