From 6d32fd2b71525e5755bd4ba08b6f8208013467fa Mon Sep 17 00:00:00 2001 From: Asger Geel Weirsoee Date: Tue, 6 Oct 2026 07:54:54 +0200 Subject: [PATCH] =?UTF-8?q?fix(podcast):=20lille=20omslag=20i=20link-forh?= =?UTF-8?q?=C3=A5ndsvisningen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Med det store omslag (3000 px) viste Messenger et kvadratisk billede i hele beskedens bredde. Forhåndsvisningen bruger nu cover-lille.jpg (300 px), når den findes, så den vises som en miniature ved teksten. Claude-Session: https://claude.ai/code/session_012LCTmU2ewo8tnM1dByYAoG --- main.py | 15 ++++++++++++++- podcast.py | 5 +++-- templates/podcast_og.html | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 55bd480..4335206 100644 --- a/main.py +++ b/main.py @@ -457,9 +457,14 @@ async def podcast_faelles_side(request: Request, key: str): base = str(request.base_url).rstrip("/") udsendelser = _podcast_kontekst(request, rod, med_kladder=False) s = udsendelser[0] if udsendelser else {"titel": "Podcast", "slug": "", "har_cover": False} + # Et lille omslag (300 px), så Messenger viser en miniature ved teksten i + # stedet for et billede i hele beskedens bredde. + lille = bool(s.get("slug")) and podcast.cover(s["slug"], lille=True) is not None og = {"titel": s["titel"], "url": f"{base}{rod}/", "beskrivelse": "Familiens podcast. Lyt i browseren, eller abonnér i din podcast-app.", - "billede": f"{base}{rod}/{s['slug']}/cover.jpg" if s.get("har_cover") else ""} + "billede": (f"{base}{rod}/{s['slug']}/cover-lille.jpg" if lille else + f"{base}{rod}/{s['slug']}/cover.jpg" if s.get("har_cover") else ""), + "str": 300 if lille else 3000} headers = {"X-Robots-Tag": "noindex, nofollow, noarchive", "Referrer-Policy": "no-referrer", "Cache-Control": "private, no-store"} if forhaandsvisning: @@ -491,6 +496,14 @@ async def podcast_faelles_feed(request: Request, key: str, name: str): headers={"Cache-Control": "private, max-age=300", "X-Robots-Tag": "noindex, nofollow"}) +@app.get("/podcast/f/{key}/{name}/cover-lille.jpg") +async def podcast_faelles_cover_lille(request: Request, key: str, name: str): + p = podcast.cover(name, lille=True) + if podcast.blokeret(_klient_ip(request)) or not podcast.faelles_slaa_op(key) or not p: + _ikke_fundet(request) + return FileResponse(p, media_type="image/jpeg", headers={"Cache-Control": "private, max-age=86400"}) + + @app.get("/podcast/f/{key}/{name}/cover.jpg") async def podcast_faelles_cover(request: Request, key: str, name: str): p = podcast.cover(name) diff --git a/podcast.py b/podcast.py index dead203..edb0a5b 100644 --- a/podcast.py +++ b/podcast.py @@ -115,8 +115,9 @@ def saet_kladde(name: str, slug: str, kladde: bool) -> bool: return True -def cover(name: str) -> Path | None: - p = ROOT / name / "cover.jpg" +def cover(name: str, lille: bool = False) -> Path | None: + """Omslaget; lille = 300 px-udgaven til link-forhåndsvisninger (cover-lille.jpg).""" + p = ROOT / name / ("cover-lille.jpg" if lille else "cover.jpg") return p if SHOW.match(name or "") and p.exists() else None diff --git a/templates/podcast_og.html b/templates/podcast_og.html index 50b9154..7638ffe 100644 --- a/templates/podcast_og.html +++ b/templates/podcast_og.html @@ -11,8 +11,8 @@ {% if og.billede %} - - + + {% endif %}

{{ og.titel }}

{{ og.beskrivelse }}