From 8e4bd20e458f59af383c0da1e3e9dc010ee97907 Mon Sep 17 00:00:00 2001 From: xMohnad Date: Wed, 11 Jun 2025 18:28:56 +0000 Subject: [PATCH] refactor(mmrcms): replace XPath with CSS selectors for page list parsing --- dart/manga/multisrc/mmrcms/mmrcms.dart | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/dart/manga/multisrc/mmrcms/mmrcms.dart b/dart/manga/multisrc/mmrcms/mmrcms.dart index b57ea706..2e6c077f 100644 --- a/dart/manga/multisrc/mmrcms/mmrcms.dart +++ b/dart/manga/multisrc/mmrcms/mmrcms.dart @@ -201,18 +201,16 @@ class MMRCMS extends MProvider { @override Future> getPageList(String url) async { - final res = (await client.get(Uri.parse(url))).body; + final response = await client.get(Uri.parse(url)); + final document = parseHtml(response.body); List pagesUrl = []; - final pages = xpath( - res, - '//*[@id="all"]/img[@class="img-responsive"]/@data-src', - ); - for (var page in pages) { - if (page.startsWith('//')) { - pagesUrl.add(page.replaceAll('//', 'https://')); + for (var img in document.select('#all img.img-responsive[data-src]')) { + String? src = img.attr('data-src'); + if (src.startsWith('//')) { + pagesUrl.add('https:${src}'); } else { - pagesUrl.add(page); + pagesUrl.add(src); } }