madara: use "works" instead of "manga" in URL for specific sources

This commit is contained in:
xMohnad
2025-06-13 21:28:56 +00:00
parent dc89b3c97c
commit 351809808e

View File

@@ -10,20 +10,22 @@ class Madara extends MProvider {
@override @override
Future<MPages> getPopular(int page) async { Future<MPages> getPopular(int page) async {
final res = final res = (await client.get(
(await client.get( Uri.parse(
Uri.parse("${source.baseUrl}/manga/page/$page/?m_orderby=views"), "${source.baseUrl}/${getMangaSubString()}/page/$page/?m_orderby=views",
)).body; ),
)).body;
final document = parseHtml(res); final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail")); return mangaFromElements(document.select("div.page-item-detail"));
} }
@override @override
Future<MPages> getLatestUpdates(int page) async { Future<MPages> getLatestUpdates(int page) async {
final res = final res = (await client.get(
(await client.get( Uri.parse(
Uri.parse("${source.baseUrl}/manga/page/$page/?m_orderby=latest"), "${source.baseUrl}/${getMangaSubString()}/page/$page/?m_orderby=latest",
)).body; ),
)).body;
final document = parseHtml(res); final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail")); return mangaFromElements(document.select("div.page-item-detail"));
} }
@@ -48,9 +50,12 @@ class Madara extends MProvider {
url += "${ll(url)}release=${Uri.encodeComponent(filter.state)}"; url += "${ll(url)}release=${Uri.encodeComponent(filter.state)}";
} }
} else if (filter.type == "StatusFilter") { } else if (filter.type == "StatusFilter") {
List<String> status = filter.state.where((item) => item.state).map((item) => item.value.toString()).toList(); List<String> status = filter.state
.where((item) => item.state)
.map((item) => item.value.toString())
.toList();
if (status.isNotEmpty) { if (status.isNotEmpty) {
url += "${ll(url)}status[]=${status.join('&status[]=')}"; url += "${ll(url)}status[]=${status.join('&status[]=')}";
} }
} else if (filter.type == "OrderByFilter") { } else if (filter.type == "OrderByFilter") {
if (filter.state != 0) { if (filter.state != 0) {
@@ -101,8 +106,8 @@ class Madara extends MProvider {
); );
chapter.dateUpload = dates[0]; chapter.dateUpload = dates[0];
} else { } else {
chapter.dateUpload = chapter.dateUpload = DateTime.now().millisecondsSinceEpoch
DateTime.now().millisecondsSinceEpoch.toString(); .toString();
} }
} }
chapters.add(chapter); chapters.add(chapter);
@@ -203,11 +208,10 @@ class Madara extends MProvider {
body: {"action": "manga_get_chapters", "manga": mangaId}, body: {"action": "manga_get_chapters", "manga": mangaId},
); );
if (oldXhrChaptersRequest.statusCode == 400) { if (oldXhrChaptersRequest.statusCode == 400) {
res = res = (await client.post(
(await client.post( Uri.parse("${url}ajax/chapters"),
Uri.parse("${url}ajax/chapters"), headers: headers,
headers: headers, )).body;
)).body;
} else { } else {
res = oldXhrChaptersRequest.body; res = oldXhrChaptersRequest.body;
} }
@@ -215,11 +219,10 @@ class Madara extends MProvider {
MDocument chapDoc = parseHtml(res); MDocument chapDoc = parseHtml(res);
manga.chapters = getChapters(chapDoc); manga.chapters = getChapters(chapDoc);
if (manga.chapters.isEmpty) { if (manga.chapters.isEmpty) {
res = res = (await client.post(
(await client.post( Uri.parse("${url}ajax/chapters"),
Uri.parse("${url}ajax/chapters"), headers: headers,
headers: headers, )).body;
)).body;
chapDoc = parseHtml(res); chapDoc = parseHtml(res);
manga.chapters = getChapters(chapDoc); manga.chapters = getChapters(chapDoc);
} }
@@ -252,8 +255,10 @@ class Madara extends MProvider {
List<String> pageUrls = []; List<String> pageUrls = [];
if (imgs.length == 1) { if (imgs.length == 1) {
final pagesNumber = final pagesNumber = document
document.selectFirst("#single-pager").select("option").length; .selectFirst("#single-pager")
.select("option")
.length;
final imgUrl = imgs.first; final imgUrl = imgs.first;
for (var i = 0; i < pagesNumber; i++) { for (var i = 0; i < pagesNumber; i++) {
final val = i + 1; final val = i + 1;
@@ -326,6 +331,11 @@ class Madara extends MProvider {
} }
return "?"; return "?";
} }
String getMangaSubString() {
const worksSources = {"Olaoe", "Mangax Core"};
return worksSources.contains(source.name) ? "works" : "manga";
}
} }
Madara main(MSource source) { Madara main(MSource source) {