mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 02:41:39 +00:00
fix(teamx): simplify chapter parsing and fix date format
This commit is contained in:
@@ -36,7 +36,7 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
parseChapterDate(date) {
|
parseChapterDate(date) {
|
||||||
return new Date(date).toISOString().split("T")[0];
|
return new Date(date).getTime().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
getBaseUrl() {
|
getBaseUrl() {
|
||||||
@@ -60,50 +60,6 @@ class DefaultExtension extends MProvider {
|
|||||||
return new Document(res.body);
|
return new Document(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Chapters
|
|
||||||
chapterFromElement(element) {
|
|
||||||
const chpNum = element.selectFirst("div.epl-num")?.text.trim();
|
|
||||||
const chpTitle = element.selectFirst("div.epl-title")?.text.trim();
|
|
||||||
|
|
||||||
let name;
|
|
||||||
if (chpTitle?.includes(chpNum?.replace(/[^0-9]/g, ""))) {
|
|
||||||
name = chpTitle;
|
|
||||||
} else if (!chpNum) {
|
|
||||||
name = chpTitle;
|
|
||||||
} else if (!chpTitle) {
|
|
||||||
name = chpNum;
|
|
||||||
} else {
|
|
||||||
name = `${chpNum} - ${chpTitle}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
name,
|
|
||||||
dateUpload: this.parseChapterDate(
|
|
||||||
element.selectFirst("div.epl-date")?.text.trim(),
|
|
||||||
),
|
|
||||||
url: element.getHref,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
async chapterListParse(response) {
|
|
||||||
const allElements = [];
|
|
||||||
let doc = response;
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
const pageChapters = doc.select("div.eplister ul a");
|
|
||||||
if (pageChapters.length === 0) break;
|
|
||||||
|
|
||||||
allElements.push(...pageChapters);
|
|
||||||
const nextPage = doc.select("a[rel=next]");
|
|
||||||
if (nextPage.length === 0) break;
|
|
||||||
|
|
||||||
const nextUrl = nextPage[0].attr("href");
|
|
||||||
doc = await this.request(nextUrl, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
return allElements.map((element) => this.chapterFromElement(element));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Manga Listing
|
// Manga Listing
|
||||||
async getMangaList(slug) {
|
async getMangaList(slug) {
|
||||||
const doc = await this.request(`/${slug}`);
|
const doc = await this.request(`/${slug}`);
|
||||||
@@ -152,9 +108,34 @@ class DefaultExtension extends MProvider {
|
|||||||
return { list, hasNextPage: false };
|
return { list, hasNextPage: false };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Chapters
|
||||||
|
chapterFromElement(element) {
|
||||||
|
const chpNum = element.selectFirst("div.epl-num")?.text.trim();
|
||||||
|
const chpTitle = element.selectFirst("div.epl-title")?.text.trim();
|
||||||
|
|
||||||
|
let name;
|
||||||
|
if (chpTitle?.includes(chpNum?.replace(/[^0-9]/g, ""))) {
|
||||||
|
name = chpTitle;
|
||||||
|
} else if (!chpNum) {
|
||||||
|
name = chpTitle;
|
||||||
|
} else if (!chpTitle) {
|
||||||
|
name = chpNum;
|
||||||
|
} else {
|
||||||
|
name = `${chpNum} - ${chpTitle}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
dateUpload: this.parseChapterDate(
|
||||||
|
element.selectFirst("div.epl-date")?.text.trim(),
|
||||||
|
),
|
||||||
|
url: element.getHref,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Detail
|
// Detail
|
||||||
async getDetail(url) {
|
async getDetail(url) {
|
||||||
const doc = await this.request(url, false);
|
let doc = await this.request(url, false);
|
||||||
|
|
||||||
const title = doc.selectFirst("div.author-info-title h1")?.text.trim();
|
const title = doc.selectFirst("div.author-info-title h1")?.text.trim();
|
||||||
const imageUrl = doc.selectFirst("img.shadow-sm")?.getSrc;
|
const imageUrl = doc.selectFirst("img.shadow-sm")?.getSrc;
|
||||||
@@ -178,7 +159,24 @@ class DefaultExtension extends MProvider {
|
|||||||
.select("div.review-author-info a")
|
.select("div.review-author-info a")
|
||||||
.map((e) => e.text.trim());
|
.map((e) => e.text.trim());
|
||||||
|
|
||||||
const chapters = await this.chapterListParse(doc);
|
const allElements = [];
|
||||||
|
for (;;) {
|
||||||
|
const pageChapters = doc.select("div.eplister ul a");
|
||||||
|
if (!pageChapters || pageChapters.length === 0) break;
|
||||||
|
allElements.push(...pageChapters);
|
||||||
|
|
||||||
|
const nextPage = doc.select("a[rel=next]");
|
||||||
|
if (!nextPage || nextPage.length === 0) break;
|
||||||
|
|
||||||
|
const nextUrl = nextPage[0].attr("href");
|
||||||
|
if (!nextUrl) break;
|
||||||
|
|
||||||
|
doc = await this.request(nextUrl, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
const chapters = allElements.map((element) =>
|
||||||
|
this.chapterFromElement(element),
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title,
|
title,
|
||||||
|
|||||||
Reference in New Issue
Block a user