From 1fd19ed2ac865b312b4a19cc99acf6e2df957bc4 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 8 Oct 2023 08:35:51 +0000 Subject: [PATCH] FIX Tapas: improve manga list (#6300) * Fix Tapas: extract mangatitle from dataset * tapas : use json to get mangas better that fetching page again --- src/web/mjs/connectors/Tapas.mjs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/web/mjs/connectors/Tapas.mjs b/src/web/mjs/connectors/Tapas.mjs index 98a3721e09..d79f37b228 100644 --- a/src/web/mjs/connectors/Tapas.mjs +++ b/src/web/mjs/connectors/Tapas.mjs @@ -30,17 +30,22 @@ export default class Tapas extends Connector { } async _getMangasFromPage(page) { - let uri = new URL('/comics', this.url); + const uri = new URL('/comics', this.url); uri.searchParams.set('b', 'ALL'); uri.searchParams.set('g', 0); uri.searchParams.set('pageNumber', page); //uri.searchParams.set('pageSize', 20); - let request = new Request(uri, this.requestOptions); - let data = await this.fetchDOM(request, 'div.section__body ul.content__list li.list__item a.thumb'); - return data.map(element => { + const request = new Request(uri, this.requestOptions); + request.headers.set('Accept', 'application/json, text/javascript, */*;'); + + const data = await this.fetchJSON(request, this.requestOptions); + const dom = new DOMParser().parseFromString(data.data.body, 'text/html'); + const nodes = [...dom.querySelectorAll('li.list__item a.thumb')]; + + return nodes.map(element => { return { id: this.getRootRelativeOrAbsoluteLink(element.pathname, this.url), - title: element.querySelector('source').attributes.getNamedItem('alt').value.trim() + title: element.dataset.tiaraEventMetaSeries.trim() }; }); } @@ -120,4 +125,4 @@ export default class Tapas extends Connector { return [ await Engine.Request.fetchUI(request, script, 30000, true) ]; } -} \ No newline at end of file +}