From 351809808e875290c82787a7cc23e484c4f7999e Mon Sep 17 00:00:00 2001 From: xMohnad Date: Fri, 13 Jun 2025 21:28:56 +0000 Subject: [PATCH] madara: use "works" instead of "manga" in URL for specific sources --- dart/manga/multisrc/madara/madara.dart | 58 +++++++++++++++----------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/dart/manga/multisrc/madara/madara.dart b/dart/manga/multisrc/madara/madara.dart index 166e15a9..2f10a0e2 100644 --- a/dart/manga/multisrc/madara/madara.dart +++ b/dart/manga/multisrc/madara/madara.dart @@ -10,20 +10,22 @@ class Madara extends MProvider { @override Future getPopular(int page) async { - final res = - (await client.get( - Uri.parse("${source.baseUrl}/manga/page/$page/?m_orderby=views"), - )).body; + final res = (await client.get( + Uri.parse( + "${source.baseUrl}/${getMangaSubString()}/page/$page/?m_orderby=views", + ), + )).body; final document = parseHtml(res); return mangaFromElements(document.select("div.page-item-detail")); } @override Future getLatestUpdates(int page) async { - final res = - (await client.get( - Uri.parse("${source.baseUrl}/manga/page/$page/?m_orderby=latest"), - )).body; + final res = (await client.get( + Uri.parse( + "${source.baseUrl}/${getMangaSubString()}/page/$page/?m_orderby=latest", + ), + )).body; final document = parseHtml(res); return mangaFromElements(document.select("div.page-item-detail")); } @@ -48,9 +50,12 @@ class Madara extends MProvider { url += "${ll(url)}release=${Uri.encodeComponent(filter.state)}"; } } else if (filter.type == "StatusFilter") { - List status = filter.state.where((item) => item.state).map((item) => item.value.toString()).toList(); + List status = filter.state + .where((item) => item.state) + .map((item) => item.value.toString()) + .toList(); if (status.isNotEmpty) { - url += "${ll(url)}status[]=${status.join('&status[]=')}"; + url += "${ll(url)}status[]=${status.join('&status[]=')}"; } } else if (filter.type == "OrderByFilter") { if (filter.state != 0) { @@ -101,8 +106,8 @@ class Madara extends MProvider { ); chapter.dateUpload = dates[0]; } else { - chapter.dateUpload = - DateTime.now().millisecondsSinceEpoch.toString(); + chapter.dateUpload = DateTime.now().millisecondsSinceEpoch + .toString(); } } chapters.add(chapter); @@ -203,11 +208,10 @@ class Madara extends MProvider { body: {"action": "manga_get_chapters", "manga": mangaId}, ); if (oldXhrChaptersRequest.statusCode == 400) { - res = - (await client.post( - Uri.parse("${url}ajax/chapters"), - headers: headers, - )).body; + res = (await client.post( + Uri.parse("${url}ajax/chapters"), + headers: headers, + )).body; } else { res = oldXhrChaptersRequest.body; } @@ -215,11 +219,10 @@ class Madara extends MProvider { MDocument chapDoc = parseHtml(res); manga.chapters = getChapters(chapDoc); if (manga.chapters.isEmpty) { - res = - (await client.post( - Uri.parse("${url}ajax/chapters"), - headers: headers, - )).body; + res = (await client.post( + Uri.parse("${url}ajax/chapters"), + headers: headers, + )).body; chapDoc = parseHtml(res); manga.chapters = getChapters(chapDoc); } @@ -252,8 +255,10 @@ class Madara extends MProvider { List pageUrls = []; if (imgs.length == 1) { - final pagesNumber = - document.selectFirst("#single-pager").select("option").length; + final pagesNumber = document + .selectFirst("#single-pager") + .select("option") + .length; final imgUrl = imgs.first; for (var i = 0; i < pagesNumber; i++) { final val = i + 1; @@ -326,6 +331,11 @@ class Madara extends MProvider { } return "?"; } + + String getMangaSubString() { + const worksSources = {"Olaoe", "Mangax Core"}; + return worksSources.contains(source.name) ? "works" : "manga"; + } } Madara main(MSource source) {