From 3d6048b1e87722854b9ae7ab9beb3d2533b4393d Mon Sep 17 00:00:00 2001 From: xMohnad Date: Sun, 22 Jun 2025 20:53:28 +0000 Subject: [PATCH] refactor(madara): extract image URL parsing into reusable method --- dart/manga/multisrc/madara/madara.dart | 30 ++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/dart/manga/multisrc/madara/madara.dart b/dart/manga/multisrc/madara/madara.dart index 2f10a0e2..b911c79e 100644 --- a/dart/manga/multisrc/madara/madara.dart +++ b/dart/manga/multisrc/madara/madara.dart @@ -178,11 +178,7 @@ class Madara extends MProvider { ""; final imageElement = document.selectFirst("div.summary_image img"); - manga.imageUrl = - imageElement?.attr("data-src") ?? - imageElement?.attr("data-lazy-src") ?? - imageElement?.attr("srcset")?.split(" ")?.first ?? - imageElement?.getSrc; + manga.imageUrl = extractImageUrl(imageElement); final id = document @@ -243,11 +239,7 @@ class Madara extends MProvider { for (var element in pageElements) { try { final imgElement = element.selectFirst("img"); - final img = - imgElement.attr("src") ?? - imgElement.attr("data-src") ?? - imgElement.attr("data-lazy-src") ?? - imgElement.attr("srcset"); + final img = extractImageUrl(imageElement); imgs.add(img); } catch (_) {} } @@ -280,12 +272,8 @@ class Madara extends MProvider { for (var i = 0; i < elements.length; i++) { final postTitle = elements[i].selectFirst("div.post-title a"); final imageElement = elements[i].selectFirst("img"); - final image = - imageElement?.attr("data-src") ?? - imageElement?.attr("data-lazy-src") ?? - imageElement?.attr("srcset") ?? - imageElement?.getSrc ?? - ""; + final image = extractImageUrl(imageElement); + MManga manga = MManga(); manga.name = postTitle.text; manga.imageUrl = substringBefore(image, " "); @@ -332,6 +320,16 @@ class Madara extends MProvider { return "?"; } + String? extractImageUrl(Element? imageElement) { + if (imageElement == null) return ""; + + return imageElement.attr("data-src") ?? + imageElement.attr("data-lazy-src") ?? + imageElement.attr("srcset")?.split(" ")?.first ?? + imageElement.getSrc ?? + ""; + } + String getMangaSubString() { const worksSources = {"Olaoe", "Mangax Core"}; return worksSources.contains(source.name) ? "works" : "manga";