refactor(madara): extract image URL parsing into reusable method

This commit is contained in:
xMohnad
2025-06-22 20:53:28 +00:00
parent 781f87bc1a
commit 3d6048b1e8

View File

@@ -178,11 +178,7 @@ class Madara extends MProvider {
""; "";
final imageElement = document.selectFirst("div.summary_image img"); final imageElement = document.selectFirst("div.summary_image img");
manga.imageUrl = manga.imageUrl = extractImageUrl(imageElement);
imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset")?.split(" ")?.first ??
imageElement?.getSrc;
final id = final id =
document document
@@ -243,11 +239,7 @@ class Madara extends MProvider {
for (var element in pageElements) { for (var element in pageElements) {
try { try {
final imgElement = element.selectFirst("img"); final imgElement = element.selectFirst("img");
final img = final img = extractImageUrl(imageElement);
imgElement.attr("src") ??
imgElement.attr("data-src") ??
imgElement.attr("data-lazy-src") ??
imgElement.attr("srcset");
imgs.add(img); imgs.add(img);
} catch (_) {} } catch (_) {}
} }
@@ -280,12 +272,8 @@ class Madara extends MProvider {
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
final postTitle = elements[i].selectFirst("div.post-title a"); final postTitle = elements[i].selectFirst("div.post-title a");
final imageElement = elements[i].selectFirst("img"); final imageElement = elements[i].selectFirst("img");
final image = final image = extractImageUrl(imageElement);
imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset") ??
imageElement?.getSrc ??
"";
MManga manga = MManga(); MManga manga = MManga();
manga.name = postTitle.text; manga.name = postTitle.text;
manga.imageUrl = substringBefore(image, " "); manga.imageUrl = substringBefore(image, " ");
@@ -332,6 +320,16 @@ class Madara extends MProvider {
return "?"; 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() { String getMangaSubString() {
const worksSources = {"Olaoe", "Mangax Core"}; const worksSources = {"Olaoe", "Mangax Core"};
return worksSources.contains(source.name) ? "works" : "manga"; return worksSources.contains(source.name) ? "works" : "manga";