From bfcf75af7fbe7a17274b32edb611eee148969522 Mon Sep 17 00:00:00 2001 From: Zed Date: Thu, 18 Jun 2026 15:42:17 +0200 Subject: [PATCH] Fix invalid/empty image hrefs Fixes #1413 --- src/utils.nim | 2 ++ src/views/general.nim | 1 + src/views/renderutils.nim | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/utils.nim b/src/utils.nim index f4ae560..95b46de 100644 --- a/src/utils.nim +++ b/src/utils.nim @@ -40,12 +40,14 @@ proc getVidUrl*(link: string): string = &"/video/{sig}/{encodeUrl(link)}" proc getPicUrl*(link: string): string = + if link.len == 0: return if base64Media: &"/pic/enc/{encode(link, safe=true)}" else: &"/pic/{encodeUrl(link)}" proc getOrigPicUrl*(link: string): string = + if link.len == 0: return if base64Media: &"/pic/orig/enc/{encode(link, safe=true)}" else: diff --git a/src/views/general.nim b/src/views/general.nim index 2e515bb..d3ba088 100644 --- a/src/views/general.nim +++ b/src/views/general.nim @@ -97,6 +97,7 @@ proc renderHead*(prefs: Prefs; cfg: Config; req: Request; titleText=""; desc=""; link(rel="preload", type="image/png", href=bannerUrl, `as`="image") for url in images: + if url.len == 0: continue let preloadUrl = if "400x400" in url: getPicUrl(url) else: getSmallPic(url) link(rel="preload", type="image/png", href=preloadUrl, `as`="image") diff --git a/src/views/renderutils.nim b/src/views/renderutils.nim index 8774f9d..af2f05d 100644 --- a/src/views/renderutils.nim +++ b/src/views/renderutils.nim @@ -7,12 +7,14 @@ const smallWebp* = "?name=small&format=webp" const mediumWebp* = "?name=medium&format=webp" proc getSmallPic*(url: string): string = + if url.len == 0: return result = url if "?" notin url and not url.endsWith("placeholder.png"): result &= smallWebp result = getPicUrl(result) proc getMediumPic*(url: string): string = + if url.len == 0: return result = url if "?" notin url and not url.endsWith("placeholder.png"): result &= mediumWebp