From f40050a5593269d3d68936358b94a1c55ebd53fc Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sat, 8 Jul 2023 16:35:24 +0000 Subject: [PATCH] FIX ManhwasMen: no more Madara (#5978) --- src/web/mjs/connectors/ManhwasMen.mjs | 40 ++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/src/web/mjs/connectors/ManhwasMen.mjs b/src/web/mjs/connectors/ManhwasMen.mjs index 52c462529d..8a999cc968 100644 --- a/src/web/mjs/connectors/ManhwasMen.mjs +++ b/src/web/mjs/connectors/ManhwasMen.mjs @@ -1,6 +1,7 @@ -import WordPressMadara from './templates/WordPressMadara.mjs'; +import Connector from '../engine/Connector.mjs'; +import Manga from '../engine/Manga.mjs'; -export default class ManhwasMen extends WordPressMadara { +export default class ManhwasMen extends Connector { constructor() { super(); @@ -9,15 +10,22 @@ export default class ManhwasMen extends WordPressMadara { this.tags = [ 'webtoon', 'hentai', 'korean', 'english' ]; this.url = 'https://manhwas.men'; this.path = '/manga-list'; - this.queryMangas = 'div.series-box a'; - this.queryChapters = 'li.wp-manga-chapter a'; - this.queryChaptersTitleBloat = 'span'; + this.queryMangas = 'article.anime a'; + this.queryChapters = 'ul.episodes-list li a'; this.queryPages = 'div#chapter_imgs source'; } + async _getMangaFromURI(uri) { + const request = new Request(uri, this.requestOptions); + const data = await this.fetchDOM(request, 'h1.title'); + const id = uri.pathname; + const title = data[0].textContent.trim(); + return new Manga(this, id, title); + } + async _getMangas() { - let mangaList = []; + const mangaList = []; for(let page = 1, run = true; run; page++) { let mangas = await this._getMangasFromPage(page); mangas.length > 0 ? mangaList.push(...mangas) : run = false; @@ -32,9 +40,27 @@ export default class ManhwasMen extends WordPressMadara { return data.map(element => { return { id: this.getRootRelativeOrAbsoluteLink(element, request.url), - title: element.querySelector('h5.series-title').textContent.trim() + title: element.querySelector('.title').textContent.trim() + }; + }); + } + + async _getChapters(manga) { + let uri = new URL(manga.id, this.url); + let request = new Request(uri, this.requestOptions); + let data = await this.fetchDOM(request, this.queryChapters); + return data.map(element => { + return { + id: this.getRootRelativeOrAbsoluteLink(element, request.url), + title: element.querySelector('p span').textContent.replace(manga.title, '').trim() }; }); } + async _getPages(chapter) { + let uri = new URL(chapter.id, this.url); + let request = new Request(uri, this.requestOptions); + let data = await this.fetchDOM(request, this.queryPages); + return data.filter(element => !element.src.includes('discord.jpg')).map(element => this.getRootRelativeOrAbsoluteLink(element, request.url)); + } }