From 485586048701e9161fcc1921d0476afad382cc87 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Mon, 26 Jan 2026 08:14:42 +0100 Subject: [PATCH] cover fix --- calibre-system/cwa.yaml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/calibre-system/cwa.yaml b/calibre-system/cwa.yaml index f391b6b..0a58684 100644 --- a/calibre-system/cwa.yaml +++ b/calibre-system/cwa.yaml @@ -1,13 +1,9 @@ --- -# Calibre-Web-Automated - All-in-one eBook library solution -# Namespace apiVersion: v1 kind: Namespace metadata: name: calibre-system --- -# Custom Metadata Providers ConfigMap -# Contains Hungarian metadata providers: moly.hu and libri.hu apiVersion: v1 kind: ConfigMap metadata: @@ -282,19 +278,27 @@ data: return None def _parse_cover(self, root) -> Optional[str]: - cover_nodes = root.xpath('(//*[@class="coverbox"]//a/@href)[1]') - if cover_nodes: - cover_url = cover_nodes[0] - if not cover_url.startswith('http'): - cover_url = self.BASE_URL + cover_url - return cover_url + # Best quality: og:image meta tag + og_img = root.xpath('//meta[@property="og:image"]/@content') + if og_img: + return og_img[0] - img_nodes = root.xpath('//*[@class="coverbox"]//img/@src') - if img_nodes: - img_url = img_nodes[0] + # Fallback: img tags with "cover" in src + cover_imgs = root.xpath('//img[contains(@src, "cover")]/@src') + if cover_imgs: + img_url = cover_imgs[0] if not img_url.startswith('http'): - img_url = self.BASE_URL + img_url + img_url = "https:" + img_url if img_url.startswith('//') else self.BASE_URL + img_url return img_url + + # Last resort: content section images + content_imgs = root.xpath('//*[@id="content"]//img/@src') + if content_imgs: + img_url = content_imgs[0] + if not img_url.startswith('http'): + img_url = "https:" + img_url if img_url.startswith('//') else self.BASE_URL + img_url + return img_url + return None def _parse_publisher(self, root) -> Optional[str]: