This commit is contained in:
kodjomoustapha
2023-12-20 20:34:40 +01:00
parent a611836b22
commit d72c0b805e
3 changed files with 45 additions and 35 deletions

File diff suppressed because one or more lines are too long

View File

@@ -134,10 +134,10 @@ class Madara extends MProvider {
""; "";
final imageElement = document.selectFirst("div.summary_image img"); final imageElement = document.selectFirst("div.summary_image img");
final image = imageElement?.attr("data-src") ?? final image = imageElement?.attr("src") ??
imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ?? imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset") ?? imageElement?.attr("srcset");
imageElement?.getSrc;
if (image != null) { if (image != null) {
manga.imageUrl = image; manga.imageUrl = image;
} }
@@ -172,40 +172,50 @@ class Madara extends MProvider {
res = await http('POST', json.encode(datasP)); res = await http('POST', json.encode(datasP));
} }
List<MChapter> chaptersList = var chapUrls = xpath(res, '//li[@class^="wp-manga-chapter"]/a/@href');
parseHtml(res).select('li.wp-manga-chapter').map((MElement e) { var chaptersNames = xpath(res, '//li[@class^="wp-manga-chapter"]/a/text()');
String date = ""; var dateF = xpath(res, '//li[@class^="wp-manga-chapter"]/span/i/text()');
List<MElement>? dateEList = e if (dateF.isEmpty) {
.select('img') final resWebview = await getHtmlViaWebview(
?.where((MElement e) => !(e.className.contains("thumb"))) url, "//*[@id='manga-chapters-holder']/div[2]/div/ul/li/a/@href");
.toList(); chapUrls = xpath(resWebview,
if (dateEList != null && dateEList.isNotEmpty) { "//*[@id='manga-chapters-holder']/div[2]/div/ul/li/a/@href");
final dateE = (dateEList.first as MElement).attr("alt"); chaptersNames = xpath(resWebview,
if (dateE != null) { "//*[@id='manga-chapters-holder']/div[2]/div/ul/li/a/text()");
date = parseDates([dateE], source.dateFormat, source.dateFormatLocale) dateF = xpath(resWebview,
.first; "//*[@id='manga-chapters-holder']/div[2]/div/ul/li/span/i/text()");
}
List<String> dateUploads = [];
if (source.dateFormat.isNotEmpty) {
dateUploads =
parseDates(dateF, source.dateFormat, source.dateFormatLocale);
if (dateF.length < chaptersNames.length) {
final length = chaptersNames.length - dateF.length;
String date = "${DateTime.now().millisecondsSinceEpoch}";
for (var i = 0; i < length - 1; i++) {
date += "--..${DateTime.now().millisecondsSinceEpoch}";
} }
}
if (date.isEmpty) { final dateFF =
final dateE = e.selectFirst('span a')?.attr("title"); parseDates(dateF, source.dateFormat, source.dateFormatLocale);
if (dateE != null) { List<String> chapterDate = date.split('--..');
date = parseDates([dateE], source.dateFormat, source.dateFormatLocale)
.first; for (var date in dateFF) {
} chapterDate.add(date);
}
if (date.isEmpty) {
final dateE = e.selectFirst('span.chapter-release-date')?.text;
if (dateE != null) {
date = parseDates([dateE], source.dateFormat, source.dateFormatLocale)
.first;
} }
dateUploads = chapterDate;
} }
}
List<MChapter>? chaptersList = [];
for (var i = 0; i < chaptersNames.length; i++) {
MChapter chapter = MChapter(); MChapter chapter = MChapter();
chapter.name = e.selectFirst('a').text; chapter.name = chaptersNames[i];
chapter.url = e.selectFirst('a').getHref; chapter.url = chapUrls[i];
if (source.dateFormat.isNotEmpty) chapter.dateUpload = date; if (source.dateFormat.isNotEmpty) chapter.dateUpload = dateUploads[i];
return chapter; chaptersList.add(chapter);
}).toList(); }
manga.chapters = chaptersList; manga.chapters = chaptersList;
return manga; return manga;
} }

View File

@@ -164,7 +164,7 @@ import 'src/comicarab/comicarab.dart';
import 'src/manga3asq/manga3asq.dart'; import 'src/manga3asq/manga3asq.dart';
import 'src/bakamh/bakamh.dart'; import 'src/bakamh/bakamh.dart';
const madaraVersion = "0.0.55"; const madaraVersion = "0.0.6";
const madaraSourceCodeUrl = const madaraSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/madara.dart"; "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/madara.dart";