From 13b15c196c304648870a3762c525ea63b85882db Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Fri, 2 Aug 2024 16:47:39 +0100 Subject: [PATCH] fix: Madara getPageList --- dart/manga/multisrc/madara/madara.dart | 34 ++++++++++++------------- dart/manga/multisrc/madara/sources.dart | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/dart/manga/multisrc/madara/madara.dart b/dart/manga/multisrc/madara/madara.dart index 60bab314..01fe56a3 100644 --- a/dart/manga/multisrc/madara/madara.dart +++ b/dart/manga/multisrc/madara/madara.dart @@ -228,30 +228,30 @@ class Madara extends MProvider { @override Future> getPageList(String url) async { - final res = (await client.get(Uri.parse(url))).body; - final document = parseHtml(res); - final pageElement = document.selectFirst( - "div.page-break, li.blocks-gallery-item, .reading-content, .text-left img"); + final res = (await client.get(Uri.parse(url))); + final document = parseHtml(res.body); - List imgs = pageElement - .select("img") - .map((MElement e) => - e.attr("src") ?? - e.attr("data-src") ?? - e.attr("data-lazy-src") ?? - e.attr("srcset")) - .toList(); + final pageElements = document.select( + "div.page-break, li.blocks-gallery-item, .reading-content .text-left:not(:has(.blocks-gallery-item)) img"); + + List imgs = []; + 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"); + imgs.add(img); + } catch (_) {} + } List pageUrls = []; if (imgs.length == 1) { final pagesNumber = document.selectFirst("#single-pager").select("option").length; - MElement imgElement = pageElement.selectFirst("img"); - final imgUrl = imgElement.attr("src") ?? - imgElement.attr("data-src") ?? - imgElement.attr("data-lazy-src") ?? - imgElement.attr("srcset"); + final imgUrl = imgs.first; for (var i = 0; i < pagesNumber; i++) { final val = i + 1; if (i.toString().length == 1) { diff --git a/dart/manga/multisrc/madara/sources.dart b/dart/manga/multisrc/madara/sources.dart index 1e1c6ce4..747691f1 100644 --- a/dart/manga/multisrc/madara/sources.dart +++ b/dart/manga/multisrc/madara/sources.dart @@ -371,7 +371,7 @@ import 'src/truyenvn/truyenvn.dart'; -const madaraVersion = "0.1.0"; +const madaraVersion = "0.1.1"; const madaraSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/madara.dart";