From 60c3fa818ad20383661902022316e08501931b76 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Tue, 4 Jul 2023 16:28:33 +0200 Subject: [PATCH 01/45] Add TAAD Decorator and Websites * Notable websites: Tenmanga, NineManga, TAADD * Some old taadd wbesites are redirecting to Manga33 which is FlatManga now : MangaDeep and Manga99 so they are removed --- web/src/engine/websites/_index.ts | 3 +- web/src/engine/websites/decorators/TAADD.ts | 152 ++++++++++++++++++ web/src/engine/websites/legacy/Manga99.ts | 38 ----- web/src/engine/websites/legacy/Manga99.webp | Bin 346 -> 0 bytes web/src/engine/websites/legacy/MangaDeep.ts | 38 ----- web/src/engine/websites/legacy/MangaDeep.webp | Bin 340 -> 0 bytes web/src/engine/websites/legacy/MangaRussia.ts | 40 ++--- web/src/engine/websites/legacy/NineMangaBR.ts | 32 ++-- web/src/engine/websites/legacy/NineMangaDE.ts | 32 ++-- web/src/engine/websites/legacy/NineMangaEN.ts | 32 ++-- web/src/engine/websites/legacy/NineMangaES.ts | 32 ++-- web/src/engine/websites/legacy/NineMangaFR.ts | 19 +++ .../engine/websites/legacy/NineMangaFR.webp | Bin 0 -> 1402 bytes web/src/engine/websites/legacy/NineMangaIT.ts | 32 ++-- web/src/engine/websites/legacy/NineMangaRU.ts | 32 ++-- web/src/engine/websites/legacy/TAADD.ts | 105 ++---------- web/src/engine/websites/legacy/TenManga.ts | 47 ++---- web/src/engine/websites/legacy/WieManga.ts | 38 ++--- 18 files changed, 278 insertions(+), 394 deletions(-) create mode 100644 web/src/engine/websites/decorators/TAADD.ts delete mode 100755 web/src/engine/websites/legacy/Manga99.ts delete mode 100755 web/src/engine/websites/legacy/Manga99.webp delete mode 100755 web/src/engine/websites/legacy/MangaDeep.ts delete mode 100755 web/src/engine/websites/legacy/MangaDeep.webp create mode 100644 web/src/engine/websites/legacy/NineMangaFR.ts create mode 100644 web/src/engine/websites/legacy/NineMangaFR.webp diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 278c3ae8f7..bf8815091b 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -779,13 +779,11 @@ export { default as Manamoa } from './legacy/Manamoa'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; export { default as Manga33 } from './legacy/Manga33'; -export { default as Manga99 } from './legacy/Manga99'; export { default as Manga1001 } from './legacy/Manga1001'; export { default as MangaArab } from './legacy/MangaArab'; export { default as MangaCat } from './legacy/MangaCat'; export { default as MangaCross } from './legacy/MangaCross'; export { default as MangaCruzers } from './legacy/MangaCruzers'; -export { default as MangaDeep } from './legacy/MangaDeep'; export { default as MangaEdenEN } from './legacy/MangaEdenEN'; export { default as MangaEdenIT } from './legacy/MangaEdenIT'; export { default as Mangafast } from './legacy/Mangafast'; @@ -910,6 +908,7 @@ export { default as NineMangaBR } from './legacy/NineMangaBR'; export { default as NineMangaDE } from './legacy/NineMangaDE'; export { default as NineMangaEN } from './legacy/NineMangaEN'; export { default as NineMangaES } from './legacy/NineMangaES'; +export { default as NineMangaFR } from './legacy/NineMangaFR'; export { default as NineMangaIT } from './legacy/NineMangaIT'; export { default as NineMangaNet } from './legacy/NineMangaNet'; export { default as NineMangaRU } from './legacy/NineMangaRU'; diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts new file mode 100644 index 0000000000..8069799cb8 --- /dev/null +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -0,0 +1,152 @@ +import { FetchCSS, FetchRequest, FetchWindowCSS } from '../../FetchProvider'; +import { type MangaScraper, type Manga, Chapter, Page } from '../../providers/MangaPlugin'; +import type * as Common from './Common'; +export function MangaLabelExtractor(element: HTMLElement) { + const title = ((element as HTMLMetaElement).content || element.textContent).replace(/(^\s*[Мм]анга|[Mm]anga\s*$)/, '').trim(); + return title ; +} + +type LinkExtractor = (this: MangaScraper, element: HTMLElement) => string; +export function ChapterExtractor(element: HTMLAnchorElement) { + const id = element.pathname + element.search; + const title = element.childNodes[0].nodeValue.trim(); + return { id, title }; +} + +export function PageLinkExtractor(element: HTMLElement) { + switch (element.nodeName) { + case 'OPTION'://Most TAADD websites got a selector with options element + return new URL((element as HTMLOptionElement).value, this.URI).href; + case 'DIV': //Tenmanga = selector is a div full of
; + return element.getAttribute('option_val') || element.textContent; + default: //just in case. People could always use a custom PageLinkExtractor anyway + return element.textContent; + } +} + +export const mangaPath = '/search/?completed_series=either&page={page}'; +export const queryMangaTitleFromURI = 'meta[property="og:title"]'; +export const queryMangas = [ + 'div.clistChr ul li div.intro h2 a', + 'a.bookname', + 'a.resultbookname', +].join(','); + +export const queryChapters = [ + 'div.chapter_list table tr td:first-of-type a', + 'div.chapterbox ul li a.chapter_list_a',//NineManga +].join(','); +export const queryPages = 'select#page'; +export const querySubPages = 'option'; +export const queryImages = [ + 'img#comicpic', + 'img.manga_pic' +].join(','); + +/************************************************* + ******** Chapter List Extraction Methods ******** + *************************************************/ + +/** + * An extension method for extracting all chapters for the given {@link manga} using the given CSS {@link query}. + * The chapters are extracted from the composed url based on the `Identifier` of the {@link manga} and the `URI` of the website. + * The purpose of this is to add search params to bypass adult warning. In case you dont need, use Common.ChaptersSinglePageCSS + * @param this - A reference to the {@link MangaScraper} instance which will be used as context for this method + * @param manga - A reference to the {@link Manga} which shall be assigned as parent for the extracted chapters + * @param query - A CSS query to locate the elements from which the chapter identifier and title shall be extracted + * @param extractor - An Extractor to get chapter infos + * @param bypassNsfwWarning - add a param to the url otherwise chapters are hidden for NSFW manga + */ +async function FetchChaptersSinglePageCSS(this: MangaScraper, manga: Manga, query = queryChapters, extractor = ChapterExtractor, bypassNsfwWarning = true): Promise { + const url = new URL(manga.Identifier, this.URI); + if (bypassNsfwWarning) { + url.searchParams.set('warning', '1'); + url.searchParams.set('waring', '1'); //NineManga typo + } + + const request = new FetchRequest(url.href); + let data = await FetchCSS(request, query); + data = await FetchCSS(request, query); + return data.map(element => { + const { id, title } = extractor.call(this, element); + let finaltitle = title.replace(manga.Title, '') === '' ? title : title.replace(manga.Title, ''); + finaltitle = finaltitle.replace(/\s*new$/, '').trim(); + return new Chapter(this, manga, id, finaltitle ); + }); +} + +/** + * A class decorator that adds the ability to extract all chapters for a given manga from this website using the given CSS {@link query}. + * The chapters are extracted from the composed url based on the `Identifier` of the manga and the `URI` of the website. + * The purpose of this is to add search params to bypass adult warning. In case you dont need, use Common.ChaptersSinglePageCSS + * @param query - A CSS query to locate the elements from which the chapter identifier and title shall be extracted + * @param extractor - An Extractor to get chapter infos + * @param bypassNsfwWarning - add a param to the url otherwise chapters are hidden for NSFW manga + */ +export function ChaptersSinglePageCSS(query: string = queryChapters, extractor = ChapterExtractor, bypassNsfwWarning = true) { + return function DecorateClass(ctor: T, context?: ClassDecoratorContext): T { + if (context && context.kind !== 'class') { + throw new Error(context.name); + } + return class extends ctor { + public async FetchChapters(this: MangaScraper, manga: Manga): Promise { + return FetchChaptersSinglePageCSS.call(this, manga, query, extractor, bypassNsfwWarning); + } + }; + }; +} + +/************************************************* + ******** Page List Extraction Methods ************ + *************************************************/ + +/** + * An extension method for extracting all pages for the given {@link chapter} using the given CSS. + * Use this when the chapter is made from multiples pages and each "sub pages" get a single or more images + * @param this - A reference to the {@link MangaScraper} instance which will be used as context for this method + * @param chapter - A reference to the {@link Chapter} which shall be assigned as parent for the extracted pages + * @param queryPages_arg - A CSS selector to the element containing all subpages : Typically a element + * @param querySubPages_arg - A CSS query to match all elements from {@link queryPages_arg}. Ie. 'option' + * @param queryImages_arg - A CSS query to locate the images in each subpage + * @param extractSubPages - A function to extract the subpage information from a single element (found with {@link querySubPages_arg}) + */ +export function PagesMultiPageCSS(queryPages_arg: string = queryPages, querySubPages_arg: string = querySubPages, queryImages_arg: string = queryImages, extractSubPages: LinkExtractor = PageLinkExtractor) { + return function DecorateClass(ctor: T, context?: ClassDecoratorContext): T { + if (context && context.kind !== 'class') { + throw new Error(context.name); + } + return class extends ctor { + public async FetchPages(this: MangaScraper, chapter: Chapter): Promise { + return FetchPagesMultiPagesCSS.call(this, chapter, queryPages_arg, querySubPages_arg, queryImages_arg, extractSubPages ); + } + }; + }; +} diff --git a/web/src/engine/websites/legacy/Manga99.ts b/web/src/engine/websites/legacy/Manga99.ts deleted file mode 100755 index c280c48883..0000000000 --- a/web/src/engine/websites/legacy/Manga99.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; -import icon from './Manga99.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; - -export default class extends DecoratableMangaScraper { - - public constructor() { - super('manga99', `Manga99`, 'http://www.manga99.com' /*, Tags.Language.English, Tags ... */); - } - - public override get Icon() { - return icon; - } -} - -// Original Source -/* -class Manga99 extends TAADD { - - constructor() { - super(); - super.id = 'manga99'; - super.label = 'Manga99'; - this.tags = [ 'manga', 'english' ]; - this.url = 'http://www.manga99.com'; - - //this.bypassAdultWarning = true; - this.queryMangaTitle = 'div.container_book div.book-info h1'; - this.queryMangas = 'ul#list_container li dd.book-list > a:first-of-type'; - this.queryChapters = 'ul.chapter-box li div.chapter-name.short a'; - this.queryPages = 'select.sl-page'; - this.queryImages = 'div.pic_box source.manga_pic'; - } -} -*/ \ No newline at end of file diff --git a/web/src/engine/websites/legacy/Manga99.webp b/web/src/engine/websites/legacy/Manga99.webp deleted file mode 100755 index c517525c81f6c95829c5df32cdc74973788f7e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2&@Nk&Fe0RRA3MM6+kP&gn)0RRB73jmz~DnI~006w`+olB=AqM^C>YN+5B z31R@Vv=;{T*@4v`F0?6WqqI>84C`oAK5|?zZ2bS?U9ve+Ro`Kb@5%r4U}H8=%4zQd zbrS`^uAWBKu=dHYsjW(HV`K*sO<>KifB^l-PqFVG^|#_*uosW+kCQ#uVaGsCJuKX3 z&El{GgXU(YCM~tqL`z3T@a9~xkWl&n3obkS>uTp5lK-$2g9j!4(c0?Z@JzP!SeH5d1)IUr%R=qjmdO03pP}pZ s+U8z&a_|3L3%GoECS`d0*5m3A2*7gMsI5}|D-KG*5=;Rri$0EU*Y5dZ)H diff --git a/web/src/engine/websites/legacy/MangaDeep.ts b/web/src/engine/websites/legacy/MangaDeep.ts deleted file mode 100755 index e83559fa2c..0000000000 --- a/web/src/engine/websites/legacy/MangaDeep.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; -import icon from './MangaDeep.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; - -export default class extends DecoratableMangaScraper { - - public constructor() { - super('mangadeep', `MangaDeep`, 'http://www.mangadeep.com' /*, Tags.Language.English, Tags ... */); - } - - public override get Icon() { - return icon; - } -} - -// Original Source -/* -class MangaDeep extends TAADD { - - constructor() { - super(); - super.id = 'mangadeep'; - super.label = 'MangaDeep'; - this.tags = [ 'manga', 'english' ]; - this.url = 'http://www.mangadeep.com'; - - //this.bypassAdultWarning = true; - this.queryMangaTitle = 'div.container_book div.book-info h1'; - this.queryMangas = 'ul#list_container li dd.book-list > a:first-of-type'; - this.queryChapters = 'ul.chapter-box li div.chapter-name.short a'; - this.queryPages = 'select.sl-page'; - this.queryImages = 'div.pic_box source.manga_pic'; - } -} -*/ \ No newline at end of file diff --git a/web/src/engine/websites/legacy/MangaDeep.webp b/web/src/engine/websites/legacy/MangaDeep.webp deleted file mode 100755 index 80e0b6766b5493223be3e1ea88af42411acfb654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvH}Nk&FY0RRA3MM6+kP&gn!0RR9n3jmz~DnI~006w)yolB=ABB8zZXaL|A ziDm%2q5)Z+oOWl6pgozt8nA*?Wi!d+#Iu`))x?i@_+;*g{+eKb&uwGhr=XfCnJFPW zSg`1?jz<0|Q*;z(WLC2QsgR>C000)MmZ+v}GWVqwU-_Chb62k8J-7H)YcLr^oUkrI zHH(i3xHxi|Fe@$CyXpz_;Hy+-gZGYa-LxATwjynao>3IZp2(~6DRhM!(tJUIYFnS< zZHHYfMOGg z?mN7W&hkh3Z#OW6-jzgFYy7t!{mLA<)LcC1Ve8-3JtvFDNSjOmorobBQ?Jl>v~diK m(f=|!CW6A~1qvH<<8D!LNZ-SdXJe5G9{N89uGcE@6aWA!keoUI diff --git a/web/src/engine/websites/legacy/MangaRussia.ts b/web/src/engine/websites/legacy/MangaRussia.ts index 1981025569..5137a76a83 100755 --- a/web/src/engine/websites/legacy/MangaRussia.ts +++ b/web/src/engine/websites/legacy/MangaRussia.ts @@ -1,39 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './MangaRussia.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/www\.mangarussia\.com\/manga\/\S+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) +@TAADD.ChaptersSinglePageCSS('div.chapterlist table tr td.col1 a', TAADD.ChapterExtractor, false) +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('mangarussia', `MangaRussia`, 'http://www.mangarussia.com' /*, Tags.Language.English, Tags ... */); + super('mangarussia', `MangaRussia`, 'https://www.mangarussia.com', Tags.Language.Russian, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class MangaRussia extends TAADD { - - constructor() { - super(); - super.id = 'mangarussia'; - super.label = 'MangaRussia'; - this.tags = [ 'manga', 'russian' ]; - this.url = 'http://www.mangarussia.com'; - this.requestOptions.headers.set('x-referer', this.url); - - this.bypassAdultWarning = false; - this.queryMangaTitle = 'div.mangabookbox div.bookmessagebox h1'; - this.queryMangas = 'table tr td a.resultbookname'; - this.queryChapters = 'div.chapterlist table tr td.col1 a'; - this.queryPages = 'select#page'; - this.queryImages = 'source#comicpic'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaBR.ts b/web/src/engine/websites/legacy/NineMangaBR.ts index ee3db59d54..1790798608 100755 --- a/web/src/engine/websites/legacy/NineMangaBR.ts +++ b/web/src/engine/websites/legacy/NineMangaBR.ts @@ -1,31 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './NineMangaBR.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/br\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('ninemanga-br', `NineMangaBR`, 'https://br.ninemanga.com' /*, Tags.Language.English, Tags ... */); + super('ninemanga-br', `NineMangaBR`, 'https://br.ninemanga.com', Tags.Language.Portuguese, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class NineMangaBR extends NineManga { - - constructor() { - super(); - super.id = 'ninemanga-br'; - super.label = 'NineMangaBR'; - this.tags = [ 'manga', 'portuguese' ]; - this.url = 'https://br.ninemanga.com'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaDE.ts b/web/src/engine/websites/legacy/NineMangaDE.ts index 824165dace..357c2a70ec 100755 --- a/web/src/engine/websites/legacy/NineMangaDE.ts +++ b/web/src/engine/websites/legacy/NineMangaDE.ts @@ -1,31 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './NineMangaDE.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/de\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('ninemanga-de', `NineMangaDE`, 'https://de.ninemanga.com' /*, Tags.Language.English, Tags ... */); + super('ninemanga-de', `NineMangaDE`, 'https://de.ninemanga.com', Tags.Language.German, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class NineMangaDE extends NineManga { - - constructor() { - super(); - super.id = 'ninemanga-de'; - super.label = 'NineMangaDE'; - this.tags = [ 'manga', 'german' ]; - this.url = 'https://de.ninemanga.com'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaEN.ts b/web/src/engine/websites/legacy/NineMangaEN.ts index ed5d12ddff..858cb25d00 100755 --- a/web/src/engine/websites/legacy/NineMangaEN.ts +++ b/web/src/engine/websites/legacy/NineMangaEN.ts @@ -1,31 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './NineMangaEN.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/en\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('ninemanga-en', `NineMangaEN`, 'https://en.ninemanga.com' /*, Tags.Language.English, Tags ... */); + super('ninemanga-en', `NineMangaEN`, 'https://en.ninemanga.com', Tags.Language.English, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class NineMangaEN extends NineManga { - - constructor() { - super(); - super.id = 'ninemanga-en'; - super.label = 'NineMangaEN'; - this.tags = [ 'manga', 'english' ]; - this.url = 'https://en.ninemanga.com'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaES.ts b/web/src/engine/websites/legacy/NineMangaES.ts index 3c844c9d03..456f727756 100755 --- a/web/src/engine/websites/legacy/NineMangaES.ts +++ b/web/src/engine/websites/legacy/NineMangaES.ts @@ -1,31 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './NineMangaES.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/es\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('ninemanga-es', `NineMangaES`, 'https://es.ninemanga.com' /*, Tags.Language.English, Tags ... */); + super('ninemanga-es', `NineMangaES`, 'https://es.ninemanga.com', Tags.Language.English, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class NineMangaES extends NineManga { - - constructor() { - super(); - super.id = 'ninemanga-es'; - super.label = 'NineMangaES'; - this.tags = [ 'manga', 'spanish' ]; - this.url = 'https://es.ninemanga.com'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaFR.ts b/web/src/engine/websites/legacy/NineMangaFR.ts new file mode 100644 index 0000000000..1dace5bc4d --- /dev/null +++ b/web/src/engine/websites/legacy/NineMangaFR.ts @@ -0,0 +1,19 @@ +import { Tags } from '../../Tags'; +import icon from './NineMangaFR.webp'; +import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; + +@Common.MangaCSS(/^https?:\/\/fr\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() +export default class extends DecoratableMangaScraper { + public constructor() { + super('ninemanga-fr', `NineMangaFR`, 'https://fr.ninemanga.com', Tags.Language.French, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); + } + public override get Icon() { + return icon; + } +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaFR.webp b/web/src/engine/websites/legacy/NineMangaFR.webp new file mode 100644 index 0000000000000000000000000000000000000000..0dc60371905ccfbb510b837dd2e0df6de0f7c1c0 GIT binary patch literal 1402 zcmV-=1%>)jNk&F;1pok7MM6+kP&il$0000G0000#002J#06|PpNNEHB01co#ZGYRw z`4I#mh=M7E%dwT-doQ=#>K~kAz2)9};@KkaxNsGShA0U75gdgih;?o`MFa!4ZR5B= zP@HpOXODpYj|LM$MD^C}9Zjd4;I?W7MWY=*%2R^%MsMw;kisdYOc2CkaY7!fRE@mI z=hUpu+=3f*j`FeR3u?;Ci|%{#imCiorx*CzP&uB&j^EohZk?>x?Ee=XOR~5@7YKBQhP{pDd)>C^xH)+ zjvixrv$Y-;i2~U+er2+v`mQR{;719y%2GDaNj_ch>bhyiyaDIR01rcBBfej4fy+Lv zX`Yh49*rX`9(Xh5>p$u|3|51{2O858F{lExeLq;Ff(_UeFIV4`x58Y93VB;wmkc;Y zq|2pE88NF?PDwOavVUn20xn%?4vrmVqt9I-MSaKK5(iF${0Jhtpb*(T0*%~IsBXSq zVfx5|n@vUX>7bgCi)d?`po!CNLK^3tuQnF)=O3G^AI#IT<1=_3v<=(_Nxhz2--V~( zE<9DF`gFhOirv>S$!Wb0f-T8{c{5u5oqxu@T`e+dN+*YAGm0*Fkn@wYQBK5NMLi7X zZ;@ZtVnSe`M&E}?MtmW(ngfkQ;m&o>6`*|eVH5+GVYC`Ci=na2AX6V=hhx`zU9AT0r2wt1+ zDtbII*w@LU1!47lHxHXHscf41pQ;IHivE)Il%=3F746?23D^wN|nF=!Tag$)6;q$vevjw zx$Wf|b?RVC#PJL!+4lB7Zr|xi8K0(84rW^?d6;XfzZKgeqJp@nN@07QU4F$n97dQ+!DL|FU(nJ z5uTQ{E8B#fo}H7)8wcM?@CvJdCt~A$3PesCAV4k|_4EP4MU=#0cWq%8*x Iw%h;!0R2L!#{d8T literal 0 HcmV?d00001 diff --git a/web/src/engine/websites/legacy/NineMangaIT.ts b/web/src/engine/websites/legacy/NineMangaIT.ts index 6777f1db08..873cf03473 100755 --- a/web/src/engine/websites/legacy/NineMangaIT.ts +++ b/web/src/engine/websites/legacy/NineMangaIT.ts @@ -1,31 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './NineMangaIT.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/it\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('ninemanga-it', `NineMangaIT`, 'https://it.ninemanga.com' /*, Tags.Language.English, Tags ... */); + super('ninemanga-it', `NineMangaIT`, 'https://it.ninemanga.com', Tags.Language.Italian, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class NineMangaIT extends NineManga { - - constructor() { - super(); - super.id = 'ninemanga-it'; - super.label = 'NineMangaIT'; - this.tags = [ 'manga', 'italian' ]; - this.url = 'https://it.ninemanga.com'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/NineMangaRU.ts b/web/src/engine/websites/legacy/NineMangaRU.ts index b9553a74c4..cca41eb0f2 100755 --- a/web/src/engine/websites/legacy/NineMangaRU.ts +++ b/web/src/engine/websites/legacy/NineMangaRU.ts @@ -1,31 +1,19 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './NineMangaRU.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/ru\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('ninemanga-ru', `NineMangaRU`, 'https://ru.ninemanga.com' /*, Tags.Language.English, Tags ... */); + super('ninemanga-ru', `NineMangaRU`, 'https://ru.ninemanga.com', Tags.Language.Russian, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class NineMangaRU extends NineManga { - - constructor() { - super(); - super.id = 'ninemanga-ru'; - super.label = 'NineMangaRU'; - this.tags = [ 'manga', 'russian' ]; - this.url = 'https://ru.ninemanga.com'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/TAADD.ts b/web/src/engine/websites/legacy/TAADD.ts index 439ef199fb..ae6bcff883 100755 --- a/web/src/engine/websites/legacy/TAADD.ts +++ b/web/src/engine/websites/legacy/TAADD.ts @@ -1,104 +1,21 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './TAADD.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; + +@Common.MangaCSS(/^https?:\/\/www\.taadd\.com\/book\/\S+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) +@TAADD.ChaptersSinglePageCSS() +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { public constructor() { - super('taadd', `TAADD`, 'https://www.taadd.com' /*, Tags.Language.English, Tags ... */); + super('taadd', `TAADD`, 'https://www.taadd.com', Tags.Language.English, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class TAADD extends Connector { - - constructor() { - super(); - super.id = 'taadd'; - super.label = 'TAADD'; - this.tags = [ 'manga', 'english' ]; - this.url = 'https://www.taadd.com'; - this.links = { - login: 'https://my.taadd.com/login.html' - }; - - this.bypassAdultWarning = true; - this.queryMangaTitle = 'meta[property="og:title"]'; - this.queryMangas = 'div.clistChr ul li div.intro h2 a'; - this.queryChapters = 'div.chapter_list table tr td:first-of-type a'; - this.queryPages = 'select#page'; - this.queryImages = 'source#comicpic'; - } - - async _getMangaFromURI(uri) { - let request = new Request(uri, this.requestOptions); - let data = await this.fetchDOM(request, this.queryMangaTitle); - let id = uri.pathname; - let title = (data[0].content || data[0].textContent).replace(/(^\s*[Мм]анга|[Mm]anga\s*$)/, '').trim(); - return new Manga(this, id, title); - } - - async _getMangas() { - let mangaList = []; - for(let page = 1, run = true; run; page++) { - let mangas = await this._getMangasFromPage(page); - mangas.length > 0 ? mangaList.push(...mangas) : run = false; - } - return mangaList; - } - - async _getMangasFromPage(page) { - let uri = new URL('/search/', this.url); - uri.searchParams.set('completed_series', 'either'); - uri.searchParams.set('page', page); - let request = new Request(uri, this.requestOptions); - let data = await this.fetchDOM(request, this.queryMangas); - return data.map(element => { - this.cfMailDecrypt(element); - return { - id: this.getRootRelativeOrAbsoluteLink(element, this.url), - title: element.title.trim() || element.text.trim() - }; - }); - } - - async _getChapters(manga) { - let uri = new URL(manga.id, this.url); - if(this.bypassAdultWarning) { - uri.searchParams.set('warning', '1'); - // fix query parameter typo for ninemanga - uri.searchParams.set('waring', '1'); - } - let request = new Request(uri, this.requestOptions); - let data = await this.fetchDOM(request, this.queryChapters); - return data.map(element => { - this.cfMailDecrypt(element); - return { - id: this.getRootRelativeOrAbsoluteLink(element, this.url), - title: element.text.replace(manga.title, '').replace(/\s*new$/, '').trim(), - language: '' - }; - }); - } - - async _getPages(chapter) { - let request = new Request(new URL(chapter.id, this.url), this.requestOptions); - let data = await this.fetchDOM(request, this.queryPages); - return [...data[0].querySelectorAll('option')].map(option => this.createConnectorURI(this.getAbsolutePath(option.value, request.url))); - } - - async _handleConnectorURI(payload) { - let request = new Request(new URL(payload, this.url), this.requestOptions); - let data = await this.fetchDOM(request, this.queryImages); - return super._handleConnectorURI(this.getAbsolutePath(data[0].src, request.url)); - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/TenManga.ts b/web/src/engine/websites/legacy/TenManga.ts index 4e199d6cae..e559ad87c4 100755 --- a/web/src/engine/websites/legacy/TenManga.ts +++ b/web/src/engine/websites/legacy/TenManga.ts @@ -1,41 +1,24 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './TenManga.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +function ChapterExtractor(anchor: HTMLAnchorElement) { + const title = anchor.getElementsByClassName('chp-idx')[0].textContent.trim(); + const id = anchor.pathname; + return { id, title }; +} +@Common.MangaCSS(/^https?:\/\/www\.tenmanga\.com\/book\/\S+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, 'section.book-list div.book-item a:first-of-type', 1, 1, 0, Common.AnchorInfoExtractor(true)) +@TAADD.ChaptersSinglePageCSS('div.chp-item a', ChapterExtractor) +@TAADD.PagesMultiPageCSS('div.option-list.chp-selection-list[option_name="page_head"]', 'div[option_val]') +@Common.ImageAjax() export default class extends DecoratableMangaScraper { - public constructor() { - super('tenmanga', `TenManga`, 'http://www.tenmanga.com' /*, Tags.Language.English, Tags ... */); + super('tenmanga', `TenManga`, 'https://www.tenmanga.com', Tags.Language.English, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } - public override get Icon() { return icon; } -} - -// Original Source -/* -class TenManga extends TAADD { - - constructor() { - super(); - super.id = 'tenmanga'; - super.label = 'TenManga'; - this.tags = [ 'manga', 'english' ]; - this.url = 'http://www.tenmanga.com'; - this.links = { - login: 'http://www.tenmanga.com/login' - }; - - //this.bypassAdultWarning = true; - this.queryMangaTitle = 'div.container_book div.book-info h1'; - this.queryMangas = 'ul#list_container li dd.book-list > a:first-of-type'; - this.queryChapters = 'ul.chapter-box li div.chapter-name.short a'; - this.queryPages = 'select.sl-page'; - this.queryImages = 'div.pic_box source.manga_pic'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/web/src/engine/websites/legacy/WieManga.ts b/web/src/engine/websites/legacy/WieManga.ts index f3b9d7cdf9..a6022ba608 100755 --- a/web/src/engine/websites/legacy/WieManga.ts +++ b/web/src/engine/websites/legacy/WieManga.ts @@ -1,39 +1,21 @@ -// Auto-Generated export from HakuNeko Legacy -// See: https://gist.github.com/ronny1982/0c8d5d4f0bd9c1f1b21dbf9a2ffbfec9 - -//import { Tags } from '../../Tags'; +import { Tags } from '../../Tags'; import icon from './WieManga.webp'; import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; +import * as TAADD from '../decorators/TAADD'; +import * as Common from '../decorators/Common'; +@Common.MangaCSS(/^https?:\/\/www\.wiemanga\.com\/manga\/\S+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) +@Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) +@TAADD.ChaptersSinglePageCSS('div.chapterlist table tr td.col1 a', TAADD.ChapterExtractor, false) +@TAADD.PagesMultiPageCSS() +@Common.ImageAjax() export default class extends DecoratableMangaScraper { public constructor() { - super('wiemanga', `WieManga`, 'https://www.wiemanga.com' /*, Tags.Language.English, Tags ... */); + super('wiemanga', `WieManga`, 'https://www.wiemanga.com', Tags.Language.German, Tags.Media.Manga, Tags.Media.Manhua, Tags.Source.Aggregator); } public override get Icon() { return icon; } -} - -// Original Source -/* -class WieManga extends TAADD { - - constructor() { - super(); - super.id = 'wiemanga'; - super.label = 'WieManga'; - this.tags = [ 'manga', 'german' ]; - this.url = 'https://www.wiemanga.com'; - this.requestOptions.headers.set('x-referer', this.url); - - this.bypassAdultWarning = false; - this.queryMangaTitle = 'div.mangabookbox div.bookmessagebox h1'; - this.queryMangas = 'table tr td a.resultbookname'; - this.queryChapters = 'div.chapterlist table tr td.col1 a'; - this.queryPages = 'select#page'; - this.queryImages = 'source#comicpic'; - } -} -*/ \ No newline at end of file +} \ No newline at end of file From 3d1a6968393a6c8396be3800fc54b5a19f131a2b Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Tue, 11 Jul 2023 20:04:53 +0200 Subject: [PATCH 02/45] move from legacy --- .../websites/{legacy => }/MangaRussia.ts | 8 +++---- .../websites/{legacy => }/MangaRussia.webp | Bin .../websites/{legacy => }/NineMangaBR.ts | 8 +++---- .../websites/{legacy => }/NineMangaBR.webp | Bin .../websites/{legacy => }/NineMangaDE.ts | 8 +++---- .../websites/{legacy => }/NineMangaDE.webp | Bin .../websites/{legacy => }/NineMangaEN.ts | 8 +++---- .../websites/{legacy => }/NineMangaEN.webp | Bin .../websites/{legacy => }/NineMangaES.ts | 8 +++---- .../websites/{legacy => }/NineMangaES.webp | Bin .../websites/{legacy => }/NineMangaFR.ts | 8 +++---- .../websites/{legacy => }/NineMangaFR.webp | Bin .../websites/{legacy => }/NineMangaIT.ts | 8 +++---- .../websites/{legacy => }/NineMangaIT.webp | Bin .../websites/{legacy => }/NineMangaRU.ts | 8 +++---- .../websites/{legacy => }/NineMangaRU.webp | Bin web/src/engine/websites/{legacy => }/TAADD.ts | 8 +++---- .../engine/websites/{legacy => }/TAADD.webp | Bin .../engine/websites/{legacy => }/TenManga.ts | 8 +++---- .../websites/{legacy => }/TenManga.webp | Bin .../engine/websites/{legacy => }/WieManga.ts | 8 +++---- .../websites/{legacy => }/WieManga.webp | Bin web/src/engine/websites/_index.ts | 22 +++++++++--------- 23 files changed, 55 insertions(+), 55 deletions(-) rename web/src/engine/websites/{legacy => }/MangaRussia.ts (78%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/MangaRussia.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaBR.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaBR.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaDE.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaDE.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaEN.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaEN.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaES.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaES.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaFR.ts (75%) rename web/src/engine/websites/{legacy => }/NineMangaFR.webp (100%) rename web/src/engine/websites/{legacy => }/NineMangaIT.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaIT.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaRU.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/NineMangaRU.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/TAADD.ts (75%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/TAADD.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/TenManga.ts (83%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/TenManga.webp (100%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/WieManga.ts (78%) mode change 100755 => 100644 rename web/src/engine/websites/{legacy => }/WieManga.webp (100%) mode change 100755 => 100644 diff --git a/web/src/engine/websites/legacy/MangaRussia.ts b/web/src/engine/websites/MangaRussia.ts old mode 100755 new mode 100644 similarity index 78% rename from web/src/engine/websites/legacy/MangaRussia.ts rename to web/src/engine/websites/MangaRussia.ts index 5137a76a83..7b1106bb97 --- a/web/src/engine/websites/legacy/MangaRussia.ts +++ b/web/src/engine/websites/MangaRussia.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './MangaRussia.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/www\.mangarussia\.com\/manga\/\S+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) diff --git a/web/src/engine/websites/legacy/MangaRussia.webp b/web/src/engine/websites/MangaRussia.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/MangaRussia.webp rename to web/src/engine/websites/MangaRussia.webp diff --git a/web/src/engine/websites/legacy/NineMangaBR.ts b/web/src/engine/websites/NineMangaBR.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/NineMangaBR.ts rename to web/src/engine/websites/NineMangaBR.ts index 1790798608..08a477ab19 --- a/web/src/engine/websites/legacy/NineMangaBR.ts +++ b/web/src/engine/websites/NineMangaBR.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaBR.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/br\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaBR.webp b/web/src/engine/websites/NineMangaBR.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/NineMangaBR.webp rename to web/src/engine/websites/NineMangaBR.webp diff --git a/web/src/engine/websites/legacy/NineMangaDE.ts b/web/src/engine/websites/NineMangaDE.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/NineMangaDE.ts rename to web/src/engine/websites/NineMangaDE.ts index 357c2a70ec..5e3fd5d644 --- a/web/src/engine/websites/legacy/NineMangaDE.ts +++ b/web/src/engine/websites/NineMangaDE.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaDE.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/de\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaDE.webp b/web/src/engine/websites/NineMangaDE.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/NineMangaDE.webp rename to web/src/engine/websites/NineMangaDE.webp diff --git a/web/src/engine/websites/legacy/NineMangaEN.ts b/web/src/engine/websites/NineMangaEN.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/NineMangaEN.ts rename to web/src/engine/websites/NineMangaEN.ts index 858cb25d00..c7ba192da0 --- a/web/src/engine/websites/legacy/NineMangaEN.ts +++ b/web/src/engine/websites/NineMangaEN.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaEN.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/en\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaEN.webp b/web/src/engine/websites/NineMangaEN.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/NineMangaEN.webp rename to web/src/engine/websites/NineMangaEN.webp diff --git a/web/src/engine/websites/legacy/NineMangaES.ts b/web/src/engine/websites/NineMangaES.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/NineMangaES.ts rename to web/src/engine/websites/NineMangaES.ts index 456f727756..bb6e207192 --- a/web/src/engine/websites/legacy/NineMangaES.ts +++ b/web/src/engine/websites/NineMangaES.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaES.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/es\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaES.webp b/web/src/engine/websites/NineMangaES.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/NineMangaES.webp rename to web/src/engine/websites/NineMangaES.webp diff --git a/web/src/engine/websites/legacy/NineMangaFR.ts b/web/src/engine/websites/NineMangaFR.ts similarity index 75% rename from web/src/engine/websites/legacy/NineMangaFR.ts rename to web/src/engine/websites/NineMangaFR.ts index 1dace5bc4d..4910c379e8 100644 --- a/web/src/engine/websites/legacy/NineMangaFR.ts +++ b/web/src/engine/websites/NineMangaFR.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaFR.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/fr\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaFR.webp b/web/src/engine/websites/NineMangaFR.webp similarity index 100% rename from web/src/engine/websites/legacy/NineMangaFR.webp rename to web/src/engine/websites/NineMangaFR.webp diff --git a/web/src/engine/websites/legacy/NineMangaIT.ts b/web/src/engine/websites/NineMangaIT.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/NineMangaIT.ts rename to web/src/engine/websites/NineMangaIT.ts index 873cf03473..45a57fc3c5 --- a/web/src/engine/websites/legacy/NineMangaIT.ts +++ b/web/src/engine/websites/NineMangaIT.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaIT.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/it\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaIT.webp b/web/src/engine/websites/NineMangaIT.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/NineMangaIT.webp rename to web/src/engine/websites/NineMangaIT.webp diff --git a/web/src/engine/websites/legacy/NineMangaRU.ts b/web/src/engine/websites/NineMangaRU.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/NineMangaRU.ts rename to web/src/engine/websites/NineMangaRU.ts index cca41eb0f2..36462996cb --- a/web/src/engine/websites/legacy/NineMangaRU.ts +++ b/web/src/engine/websites/NineMangaRU.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './NineMangaRU.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/ru\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/NineMangaRU.webp b/web/src/engine/websites/NineMangaRU.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/NineMangaRU.webp rename to web/src/engine/websites/NineMangaRU.webp diff --git a/web/src/engine/websites/legacy/TAADD.ts b/web/src/engine/websites/TAADD.ts old mode 100755 new mode 100644 similarity index 75% rename from web/src/engine/websites/legacy/TAADD.ts rename to web/src/engine/websites/TAADD.ts index ae6bcff883..8c31d653e7 --- a/web/src/engine/websites/legacy/TAADD.ts +++ b/web/src/engine/websites/TAADD.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './TAADD.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/www\.taadd\.com\/book\/\S+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) diff --git a/web/src/engine/websites/legacy/TAADD.webp b/web/src/engine/websites/TAADD.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/TAADD.webp rename to web/src/engine/websites/TAADD.webp diff --git a/web/src/engine/websites/legacy/TenManga.ts b/web/src/engine/websites/TenManga.ts old mode 100755 new mode 100644 similarity index 83% rename from web/src/engine/websites/legacy/TenManga.ts rename to web/src/engine/websites/TenManga.ts index e559ad87c4..9b145453c4 --- a/web/src/engine/websites/legacy/TenManga.ts +++ b/web/src/engine/websites/TenManga.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './TenManga.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; function ChapterExtractor(anchor: HTMLAnchorElement) { const title = anchor.getElementsByClassName('chp-idx')[0].textContent.trim(); const id = anchor.pathname; diff --git a/web/src/engine/websites/legacy/TenManga.webp b/web/src/engine/websites/TenManga.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/TenManga.webp rename to web/src/engine/websites/TenManga.webp diff --git a/web/src/engine/websites/legacy/WieManga.ts b/web/src/engine/websites/WieManga.ts old mode 100755 new mode 100644 similarity index 78% rename from web/src/engine/websites/legacy/WieManga.ts rename to web/src/engine/websites/WieManga.ts index a6022ba608..ccb36ba6a3 --- a/web/src/engine/websites/legacy/WieManga.ts +++ b/web/src/engine/websites/WieManga.ts @@ -1,8 +1,8 @@ -import { Tags } from '../../Tags'; +import { Tags } from '../Tags'; import icon from './WieManga.webp'; -import { DecoratableMangaScraper } from '../../providers/MangaPlugin'; -import * as TAADD from '../decorators/TAADD'; -import * as Common from '../decorators/Common'; +import { DecoratableMangaScraper } from '../providers/MangaPlugin'; +import * as TAADD from './decorators/TAADD'; +import * as Common from './decorators/Common'; @Common.MangaCSS(/^https?:\/\/www\.wiemanga\.com\/manga\/\S+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) diff --git a/web/src/engine/websites/legacy/WieManga.webp b/web/src/engine/websites/WieManga.webp old mode 100755 new mode 100644 similarity index 100% rename from web/src/engine/websites/legacy/WieManga.webp rename to web/src/engine/websites/WieManga.webp diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index bf8815091b..ed0c5cef84 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -297,6 +297,7 @@ export { default as MangaRocky } from './MangaRocky'; export { default as MangaRoma } from './MangaRoma'; export { default as MangaRose } from './MangaRose'; export { default as MangaRow } from './MangaRow'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -404,6 +405,13 @@ export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NinjaScan } from './NinjaScan'; export { default as NinjaScans } from './NinjaScans'; export { default as Ninjavi } from './Ninjavi'; @@ -524,12 +532,14 @@ export { default as StickHorse } from './StickHorse'; export { default as SugarBBScan } from './SugarBBScan'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as TeabeerComics } from './TeabeerComics'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TheTopComic } from './TheTopComic'; export { default as ThreeQueensScanlator } from './ThreeQueensScanlator'; @@ -577,6 +587,7 @@ export { default as WestManga } from './WestManga'; export { default as WhatStatus } from './WhatStatus'; export { default as WhiteCloudPavilion } from './WhiteCloudPavilion'; export { default as WIBTranslation } from './WIBTranslation'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -833,7 +844,6 @@ export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; export { default as MangaRomance } from './legacy/MangaRomance'; export { default as MangaRoom } from './legacy/MangaRoom'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaScouts } from './legacy/MangaScouts'; export { default as MangaSee } from './legacy/MangaSee'; @@ -904,14 +914,7 @@ export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; export { default as NineAnime } from './legacy/NineAnime'; export { default as NineEkor } from './legacy/NineEkor'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaFR } from './legacy/NineMangaFR'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; export { default as NineMangaNet } from './legacy/NineMangaNet'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NoraNoFansub } from './legacy/NoraNoFansub'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; @@ -1005,13 +1008,11 @@ export { default as Submanga } from './legacy/Submanga'; export { default as Sukima } from './legacy/Sukima'; export { default as SundayWebry } from './legacy/SundayWebry'; export { default as SwordManga } from './legacy/SwordManga'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TapTrans } from './legacy/TapTrans'; export { default as Team1x1 } from './legacy/Team1x1'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as TheCatScans } from './legacy/TheCatScans'; export { default as TheNoNames } from './legacy/TheNoNames'; export { default as ThunderNovels } from './legacy/ThunderNovels'; @@ -1068,7 +1069,6 @@ export { default as WeComics } from './legacy/WeComics'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; export { default as WhimSubs } from './legacy/WhimSubs'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 177fc0367af1ec9e53a043cbcdce90e6b4de1c1c Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Tue, 11 Jul 2023 22:31:41 +0200 Subject: [PATCH 03/45] add tests --- web/src/engine/websites/MangaRussia_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/NineMangaBR_e2e.ts | 26 ++++++++++++++++++++ web/src/engine/websites/NineMangaDE_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/NineMangaEN_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/NineMangaES_e2e.ts | 27 +++++++++++++++++++++ web/src/engine/websites/NineMangaFR_e2e.ts | 27 +++++++++++++++++++++ web/src/engine/websites/NineMangaIT_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/NineMangaRU_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/TAADD_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/TenManga_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/WieManga_e2e.ts | 25 +++++++++++++++++++ web/src/engine/websites/decorators/TAADD.ts | 3 ++- 12 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 web/src/engine/websites/MangaRussia_e2e.ts create mode 100644 web/src/engine/websites/NineMangaBR_e2e.ts create mode 100644 web/src/engine/websites/NineMangaDE_e2e.ts create mode 100644 web/src/engine/websites/NineMangaEN_e2e.ts create mode 100644 web/src/engine/websites/NineMangaES_e2e.ts create mode 100644 web/src/engine/websites/NineMangaFR_e2e.ts create mode 100644 web/src/engine/websites/NineMangaIT_e2e.ts create mode 100644 web/src/engine/websites/NineMangaRU_e2e.ts create mode 100644 web/src/engine/websites/TAADD_e2e.ts create mode 100644 web/src/engine/websites/TenManga_e2e.ts create mode 100644 web/src/engine/websites/WieManga_e2e.ts diff --git a/web/src/engine/websites/MangaRussia_e2e.ts b/web/src/engine/websites/MangaRussia_e2e.ts new file mode 100644 index 0000000000..8826126b9e --- /dev/null +++ b/web/src/engine/websites/MangaRussia_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'mangarussia', + title: 'MangaRussia' + }, + container: { + url: 'https://www.mangarussia.com/manga/%D0%94%D0%B0%D0%BD%D0%B4%D0%B0%D0%B4%D0%B0%D0%BD.html', + id: '/manga/%D0%94%D0%B0%D0%BD%D0%B4%D0%B0%D0%B4%D0%B0%D0%BD.html' , + title: 'Дандадан', + }, + child: { + id: '/chapter/%D0%94%D0%B0%D0%BD%D0%B4%D0%B0%D0%B4%D0%B0%D0%BD+%D0%A2%D0%BE%D0%BC+13+%D0%93%D0%BB%D0%B0%D0%B2%D0%B0+113/3940271/', + title: 'Том 13 Глава 113', + }, + entry: { + index: 0, + size: 1_503_963, + type: 'image/jpeg' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaBR_e2e.ts b/web/src/engine/websites/NineMangaBR_e2e.ts new file mode 100644 index 0000000000..803bc15f51 --- /dev/null +++ b/web/src/engine/websites/NineMangaBR_e2e.ts @@ -0,0 +1,26 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-br', + title: 'NineMangaBR' + }, + container: { + url: 'https://br.ninemanga.com/manga/Kingdom.html', + id: '/manga/Kingdom.html', + title: 'Kingdom', + }, + child: { + id: '/chapter/Kingdom/6718490.html', + title: '762', + timeout: 10000 + }, + entry: { + index: 2, + size: 306_842, + type: 'image/webp' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaDE_e2e.ts b/web/src/engine/websites/NineMangaDE_e2e.ts new file mode 100644 index 0000000000..cf2664e543 --- /dev/null +++ b/web/src/engine/websites/NineMangaDE_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-de', + title: 'NineMangaDE' + }, + container: { + url: 'https://de.ninemanga.com/manga/Tales+of+Demons+and+Gods.html', + id: '/manga/Tales+of+Demons+and+Gods.html', + title: 'Tales of Demons and Gods', + }, + child: { + id: '/chapter/Tales%20of%20Demons%20and%20Gods/453688.html', + title: 'Tales of Demons and Gods 160.5',//yes, chapter contains two times manga title, :D + }, + entry: { + index: 0, + size: 46_476, + type: 'image/webp' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaEN_e2e.ts b/web/src/engine/websites/NineMangaEN_e2e.ts new file mode 100644 index 0000000000..739eb02435 --- /dev/null +++ b/web/src/engine/websites/NineMangaEN_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-en', + title: 'NineMangaEN' + }, + container: { + url: 'https://en.ninemanga.com/manga/My+Angel+Childhood+Friend+was+a+Gal+When+We+Met+Again.html', + id: '/manga/My+Angel+Childhood+Friend+was+a+Gal+When+We+Met+Again.html', + title: 'My Angel Childhood Friend was a Gal When We Met Again', + }, + child: { + id: '/chapter/My%20Angel%20Childhood%20Friend%20was%20a%20Gal%20When%20We%20Met%20Again/8875625.html', + title: 'Chapter 14', + }, + entry: { + index: 1, + size: 203_785, + type: 'image/jpeg' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaES_e2e.ts b/web/src/engine/websites/NineMangaES_e2e.ts new file mode 100644 index 0000000000..9f0a9f38fd --- /dev/null +++ b/web/src/engine/websites/NineMangaES_e2e.ts @@ -0,0 +1,27 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-es', + title: 'NineMangaES' + }, + container: { + url: 'https://es.ninemanga.com/manga/Martial+Peak.html', + id: '/manga/Martial+Peak.html', + title: 'Martial Peak', + }, + child: { + id: '/chapter/Martial%20Peak/1855269.html', + title: 'Capitulo 3440', + timeout: 15000 + + }, + entry: { + index: 1, + size: 110_242, + type: 'image/webp' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaFR_e2e.ts b/web/src/engine/websites/NineMangaFR_e2e.ts new file mode 100644 index 0000000000..d42a61ccac --- /dev/null +++ b/web/src/engine/websites/NineMangaFR_e2e.ts @@ -0,0 +1,27 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-fr', + title: 'NineMangaFR' + }, + container: { + url: 'https://fr.ninemanga.com/manga/Lycoris+Recoil.html', + id: '/manga/Lycoris+Recoil.html', + title: 'Lycoris Recoil', + }, + child: { + id: '/chapter/Lycoris%20Recoil/722483.html', + title: '4', + timeout: 15000 + + }, + entry: { + index: 1, + size: 108_568, + type: 'image/webp' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaIT_e2e.ts b/web/src/engine/websites/NineMangaIT_e2e.ts new file mode 100644 index 0000000000..15d04bcc24 --- /dev/null +++ b/web/src/engine/websites/NineMangaIT_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-it', + title: 'NineMangaIT' + }, + container: { + url: 'https://it.ninemanga.com/manga/Level+Up+with+the+Gods.html', + id: '/manga/Level+Up+with+the+Gods.html', + title: 'Level Up with the Gods', + }, + child: { + id: '/chapter/Level%20Up%20with%20the%20Gods/970365.html', + title: '35', + }, + entry: { + index: 1, + size: 869_059, + type: 'image/jpeg' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/NineMangaRU_e2e.ts b/web/src/engine/websites/NineMangaRU_e2e.ts new file mode 100644 index 0000000000..57a43529a5 --- /dev/null +++ b/web/src/engine/websites/NineMangaRU_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'ninemanga-ru', + title: 'NineMangaRU' + }, + container: { + url: 'https://ru.ninemanga.com/manga/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5+%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B5%D0%B9%D1%88%D0%B5%D0%B3%D0%BE+%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0.html', + id: '/manga/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5+%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B5%D0%B9%D1%88%D0%B5%D0%B3%D0%BE+%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0.html' , + title: 'Рождение сильнейшего мастера Манга (The Distinguished Cute Master)', + }, + child: { + id: '/chapter/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B5%D0%B9%D1%88%D0%B5%D0%B3%D0%BE%20%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0/3940336.html', + title: 'Рождение сильнейшего мастера Том 1 Глава 308', + }, + entry: { + index: 0, + size: 375_292, + type: 'image/webp' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/TAADD_e2e.ts b/web/src/engine/websites/TAADD_e2e.ts new file mode 100644 index 0000000000..6fd7793322 --- /dev/null +++ b/web/src/engine/websites/TAADD_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'taadd', + title: 'TAADD' + }, + container: { + url: 'https://www.taadd.com/book/One+Piece.html', + id: '/book/One+Piece.html' , + title: 'One Piece', + }, + child: { + id: '/chapter/OnePieceChapter1086/8624347/', + title: 'Chapter 1086', + }, + entry: { + index: 0, + size: 914_447, + type: 'image/jpeg' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/TenManga_e2e.ts b/web/src/engine/websites/TenManga_e2e.ts new file mode 100644 index 0000000000..3e9b564389 --- /dev/null +++ b/web/src/engine/websites/TenManga_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'tenmanga', + title: 'TenManga' + }, + container: { + url: 'https://www.tenmanga.com/book/Yoroizuka-san+wo+Baburasetai.html', + id: '/book/Yoroizuka-san+wo+Baburasetai.html' , + title: 'Yoroizuka-san wo Baburasetai', + }, + child: { + id: '/chapter/YoroizukasanwoBaburasetai20/8875086/', + title: '20', + }, + entry: { + index: 0, + size: 302_559, + type: 'image/jpeg' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/WieManga_e2e.ts b/web/src/engine/websites/WieManga_e2e.ts new file mode 100644 index 0000000000..de28a9f874 --- /dev/null +++ b/web/src/engine/websites/WieManga_e2e.ts @@ -0,0 +1,25 @@ +import { TestFixture } from '../../../test/WebsitesFixture'; + +const config = { + plugin: { + id: 'wiemanga', + title: 'WieManga' + }, + container: { + url: 'https://www.wiemanga.com/manga/Solo_Leveling.html', + id: '/manga/Solo_Leveling.html' , + title: 'Solo Leveling', + }, + child: { + id: '/chapter/SoloLevelingVol2Ch140/450993/', + title: 'Vol. 2 Ch. 140', + }, + entry: { + index: 0, + size: 527_217, + type: 'image/jpeg' + } +}; + +const fixture = new TestFixture(config); +describe(fixture.Name, () => fixture.AssertWebsite()); \ No newline at end of file diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts index 8069799cb8..a27ff16110 100644 --- a/web/src/engine/websites/decorators/TAADD.ts +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -69,7 +69,8 @@ async function FetchChaptersSinglePageCSS(this: MangaScraper, manga: Manga, quer data = await FetchCSS(request, query); return data.map(element => { const { id, title } = extractor.call(this, element); - let finaltitle = title.replace(manga.Title, '') === '' ? title : title.replace(manga.Title, ''); + const mangaTitle = manga.Title.replace(/[*^.|$?+\-()[\]{}\\/]/g, '\\$&'); //escape special regex chars in manga name + let finaltitle = title.replace(new RegExp(mangaTitle, 'i'), '') === '' ? title : title.replace(new RegExp(mangaTitle, 'i'), '');//replace manga title in chapter title finaltitle = finaltitle.replace(/\s*new$/, '').trim(); return new Chapter(this, manga, id, finaltitle ); }); From dc04fbb27e8bd8fc5079da683e76ee0fcdf26465 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Tue, 11 Jul 2023 23:03:32 +0200 Subject: [PATCH 04/45] Update NineMangaIT_e2e.ts --- web/src/engine/websites/NineMangaIT_e2e.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/engine/websites/NineMangaIT_e2e.ts b/web/src/engine/websites/NineMangaIT_e2e.ts index 15d04bcc24..b7e3a46f35 100644 --- a/web/src/engine/websites/NineMangaIT_e2e.ts +++ b/web/src/engine/websites/NineMangaIT_e2e.ts @@ -16,7 +16,7 @@ const config = { }, entry: { index: 1, - size: 869_059, + size: 788_912, type: 'image/jpeg' } }; From 1167aba8139b05ddc794e3e83cdd7386ea2ae295 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Thu, 28 Sep 2023 15:07:13 +0200 Subject: [PATCH 05/45] Update _index.ts --- web/src/engine/websites/_index.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index d9a33d0323..7a05aa8508 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -238,6 +238,7 @@ export { default as MangaReadCO } from './MangaReadCO'; export { default as MangaRockTeam } from './MangaRockTeam'; export { default as MangaRocky } from './MangaRocky'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -315,6 +316,13 @@ export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NiveraFansub } from './NiveraFansub'; export { default as NovelMic } from './NovelMic'; export { default as NoxSubs } from './NoxSubs'; @@ -397,11 +405,13 @@ export { default as Siyahmelek } from './Siyahmelek'; export { default as StickHorse } from './StickHorse'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TonizuToon } from './TonizuToon'; export { default as ToonGod } from './ToonGod'; @@ -434,6 +444,7 @@ export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; export { default as WhiteCloudPavilion } from './WhiteCloudPavilion'; export { default as WIBTranslation } from './WIBTranslation'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -628,13 +639,11 @@ export { default as Manamoa } from './legacy/Manamoa'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; export { default as Manga33 } from './legacy/Manga33'; -export { default as Manga99 } from './legacy/Manga99'; export { default as Manga1001 } from './legacy/Manga1001'; export { default as MangaArab } from './legacy/MangaArab'; export { default as MangaCat } from './legacy/MangaCat'; export { default as MangaCross } from './legacy/MangaCross'; export { default as MangaCruzers } from './legacy/MangaCruzers'; -export { default as MangaDeep } from './legacy/MangaDeep'; export { default as MangaEdenEN } from './legacy/MangaEdenEN'; export { default as MangaEdenIT } from './legacy/MangaEdenIT'; export { default as Mangafast } from './legacy/Mangafast'; @@ -684,7 +693,6 @@ export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; export { default as MangaRomance } from './legacy/MangaRomance'; export { default as MangaRoom } from './legacy/MangaRoom'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaScouts } from './legacy/MangaScouts'; export { default as MangaSee } from './legacy/MangaSee'; @@ -754,13 +762,7 @@ export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; export { default as NineAnime } from './legacy/NineAnime'; export { default as NineEkor } from './legacy/NineEkor'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; export { default as NineMangaNet } from './legacy/NineMangaNet'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NoraNoFansub } from './legacy/NoraNoFansub'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; @@ -850,13 +852,11 @@ export { default as Submanga } from './legacy/Submanga'; export { default as Sukima } from './legacy/Sukima'; export { default as SundayWebry } from './legacy/SundayWebry'; export { default as SwordManga } from './legacy/SwordManga'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TapTrans } from './legacy/TapTrans'; export { default as Team1x1 } from './legacy/Team1x1'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as TheCatScans } from './legacy/TheCatScans'; export { default as TheNoNames } from './legacy/TheNoNames'; export { default as ThunderNovels } from './legacy/ThunderNovels'; @@ -912,7 +912,6 @@ export { default as WeComics } from './legacy/WeComics'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; export { default as WhimSubs } from './legacy/WhimSubs'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 88afecc78d811ef09f2114123c79c0eeb98f22c9 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 1 Oct 2023 15:11:24 +0200 Subject: [PATCH 06/45] Update _index.ts --- web/src/engine/websites/_index.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 63187656c2..9f96693d1b 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -212,6 +212,7 @@ export { default as MangaReadCO } from './MangaReadCO'; export { default as MangaRockTeam } from './MangaRockTeam'; export { default as MangaRocky } from './MangaRocky'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -281,6 +282,13 @@ export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NiveraFansub } from './NiveraFansub'; export { default as NovelMic } from './NovelMic'; export { default as OlympusScanlation } from './OlympusScanlation'; @@ -360,11 +368,13 @@ export { default as StickHorse } from './StickHorse'; export { default as SushiScanFR } from './SushiScanFR'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TonizuToon } from './TonizuToon'; @@ -396,6 +406,7 @@ export { default as WebtoonTRCOM } from './WebtoonTRCOM'; export { default as WebtoonXYZ } from './WebtoonXYZ'; export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -588,13 +599,11 @@ export { default as Manamoa } from './legacy/Manamoa'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; export { default as Manga33 } from './legacy/Manga33'; -export { default as Manga99 } from './legacy/Manga99'; export { default as Manga1001 } from './legacy/Manga1001'; export { default as MangaArab } from './legacy/MangaArab'; export { default as MangaCat } from './legacy/MangaCat'; export { default as MangaCross } from './legacy/MangaCross'; export { default as MangaCruzers } from './legacy/MangaCruzers'; -export { default as MangaDeep } from './legacy/MangaDeep'; export { default as MangaEdenEN } from './legacy/MangaEdenEN'; export { default as MangaEdenIT } from './legacy/MangaEdenIT'; export { default as Mangafast } from './legacy/Mangafast'; @@ -644,7 +653,6 @@ export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; export { default as MangaRomance } from './legacy/MangaRomance'; export { default as MangaRoom } from './legacy/MangaRoom'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaScouts } from './legacy/MangaScouts'; export { default as MangaSee } from './legacy/MangaSee'; @@ -712,13 +720,7 @@ export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; export { default as NineAnime } from './legacy/NineAnime'; export { default as NineEkor } from './legacy/NineEkor'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; export { default as NineMangaNet } from './legacy/NineMangaNet'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NoraNoFansub } from './legacy/NoraNoFansub'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; @@ -808,13 +810,11 @@ export { default as Submanga } from './legacy/Submanga'; export { default as Sukima } from './legacy/Sukima'; export { default as SundayWebry } from './legacy/SundayWebry'; export { default as SwordManga } from './legacy/SwordManga'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TapTrans } from './legacy/TapTrans'; export { default as Team1x1 } from './legacy/Team1x1'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as TheCatScans } from './legacy/TheCatScans'; export { default as TheNoNames } from './legacy/TheNoNames'; export { default as ThunderNovels } from './legacy/ThunderNovels'; @@ -870,7 +870,6 @@ export { default as WeComics } from './legacy/WeComics'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; export { default as WhimSubs } from './legacy/WhimSubs'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 2934ac5678d919737385b0a24ca2b2860e878b07 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 15 Oct 2023 13:00:55 +0200 Subject: [PATCH 07/45] Update _index.ts --- web/src/engine/websites/_index.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 452a67815a..db256d5725 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -230,6 +230,7 @@ export { default as MangaReadCO } from './MangaReadCO'; export { default as MangaRockTeam } from './MangaRockTeam'; export { default as MangaRocky } from './MangaRocky'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -300,6 +301,13 @@ export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NiveraFansub } from './NiveraFansub'; export { default as NoraNoFansub } from './NoraNoFansub'; export { default as NovelMic } from './NovelMic'; @@ -387,11 +395,13 @@ export { default as SundayWebry } from './SundayWebry'; export { default as SushiScanFR } from './SushiScanFR'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TonariNoYoungJump } from './TonariNoYoungJump'; @@ -424,6 +434,7 @@ export { default as WebtoonTRCOM } from './WebtoonTRCOM'; export { default as WebtoonXYZ } from './WebtoonXYZ'; export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -601,12 +612,10 @@ export { default as Manamoa } from './legacy/Manamoa'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; export { default as Manga33 } from './legacy/Manga33'; -export { default as Manga99 } from './legacy/Manga99'; export { default as Manga1001 } from './legacy/Manga1001'; export { default as MangaArab } from './legacy/MangaArab'; export { default as MangaCat } from './legacy/MangaCat'; export { default as MangaCruzers } from './legacy/MangaCruzers'; -export { default as MangaDeep } from './legacy/MangaDeep'; export { default as MangaEdenEN } from './legacy/MangaEdenEN'; export { default as MangaEdenIT } from './legacy/MangaEdenIT'; export { default as Mangafast } from './legacy/Mangafast'; @@ -655,7 +664,6 @@ export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; export { default as MangaRomance } from './legacy/MangaRomance'; export { default as MangaRoom } from './legacy/MangaRoom'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaScouts } from './legacy/MangaScouts'; export { default as MangaSee } from './legacy/MangaSee'; @@ -722,13 +730,7 @@ export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; export { default as NineAnime } from './legacy/NineAnime'; export { default as NineEkor } from './legacy/NineEkor'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; export { default as NineMangaNet } from './legacy/NineMangaNet'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; export { default as NovelcoolEN } from './legacy/NovelcoolEN'; @@ -809,13 +811,11 @@ export { default as StormInHeaven } from './legacy/StormInHeaven'; export { default as Submanga } from './legacy/Submanga'; export { default as Sukima } from './legacy/Sukima'; export { default as SwordManga } from './legacy/SwordManga'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TapTrans } from './legacy/TapTrans'; export { default as Team1x1 } from './legacy/Team1x1'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as TheCatScans } from './legacy/TheCatScans'; export { default as TheNoNames } from './legacy/TheNoNames'; export { default as ThunderNovels } from './legacy/ThunderNovels'; @@ -870,7 +870,6 @@ export { default as WeComics } from './legacy/WeComics'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; export { default as WhimSubs } from './legacy/WhimSubs'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 2d6a831190ac1a8197e27f60b004b3a0fd91379b Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 15 Oct 2023 13:07:03 +0200 Subject: [PATCH 08/45] fix spacing --- web/src/engine/websites/MangaRussia_e2e.ts | 2 +- web/src/engine/websites/NineMangaDE_e2e.ts | 2 +- web/src/engine/websites/TAADD_e2e.ts | 2 +- web/src/engine/websites/TenManga_e2e.ts | 2 +- web/src/engine/websites/decorators/TAADD.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/src/engine/websites/MangaRussia_e2e.ts b/web/src/engine/websites/MangaRussia_e2e.ts index 8826126b9e..938b10188f 100644 --- a/web/src/engine/websites/MangaRussia_e2e.ts +++ b/web/src/engine/websites/MangaRussia_e2e.ts @@ -7,7 +7,7 @@ const config = { }, container: { url: 'https://www.mangarussia.com/manga/%D0%94%D0%B0%D0%BD%D0%B4%D0%B0%D0%B4%D0%B0%D0%BD.html', - id: '/manga/%D0%94%D0%B0%D0%BD%D0%B4%D0%B0%D0%B4%D0%B0%D0%BD.html' , + id: '/manga/%D0%94%D0%B0%D0%BD%D0%B4%D0%B0%D0%B4%D0%B0%D0%BD.html', title: 'Дандадан', }, child: { diff --git a/web/src/engine/websites/NineMangaDE_e2e.ts b/web/src/engine/websites/NineMangaDE_e2e.ts index cf2664e543..3759671856 100644 --- a/web/src/engine/websites/NineMangaDE_e2e.ts +++ b/web/src/engine/websites/NineMangaDE_e2e.ts @@ -12,7 +12,7 @@ const config = { }, child: { id: '/chapter/Tales%20of%20Demons%20and%20Gods/453688.html', - title: 'Tales of Demons and Gods 160.5',//yes, chapter contains two times manga title, :D + title: 'Tales of Demons and Gods 160.5', //yes, chapter contains two times manga title, :D }, entry: { index: 0, diff --git a/web/src/engine/websites/TAADD_e2e.ts b/web/src/engine/websites/TAADD_e2e.ts index 6fd7793322..f9720d0b77 100644 --- a/web/src/engine/websites/TAADD_e2e.ts +++ b/web/src/engine/websites/TAADD_e2e.ts @@ -7,7 +7,7 @@ const config = { }, container: { url: 'https://www.taadd.com/book/One+Piece.html', - id: '/book/One+Piece.html' , + id: '/book/One+Piece.html', title: 'One Piece', }, child: { diff --git a/web/src/engine/websites/TenManga_e2e.ts b/web/src/engine/websites/TenManga_e2e.ts index 3e9b564389..efa9b9ea9e 100644 --- a/web/src/engine/websites/TenManga_e2e.ts +++ b/web/src/engine/websites/TenManga_e2e.ts @@ -7,7 +7,7 @@ const config = { }, container: { url: 'https://www.tenmanga.com/book/Yoroizuka-san+wo+Baburasetai.html', - id: '/book/Yoroizuka-san+wo+Baburasetai.html' , + id: '/book/Yoroizuka-san+wo+Baburasetai.html', title: 'Yoroizuka-san wo Baburasetai', }, child: { diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts index a27ff16110..12fe26ff4f 100644 --- a/web/src/engine/websites/decorators/TAADD.ts +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -34,7 +34,7 @@ export const queryMangas = [ export const queryChapters = [ 'div.chapter_list table tr td:first-of-type a', - 'div.chapterbox ul li a.chapter_list_a',//NineManga + 'div.chapterbox ul li a.chapter_list_a', //NineManga ].join(','); export const queryPages = 'select#page'; export const querySubPages = 'option'; From 555d2831cf9d528ffecabcfba51744761b0b72e7 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 15 Oct 2023 13:12:45 +0200 Subject: [PATCH 09/45] fix spacing --- web/src/engine/websites/NineMangaRU_e2e.ts | 2 +- web/src/engine/websites/WieManga_e2e.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/engine/websites/NineMangaRU_e2e.ts b/web/src/engine/websites/NineMangaRU_e2e.ts index 57a43529a5..3e2f9fc352 100644 --- a/web/src/engine/websites/NineMangaRU_e2e.ts +++ b/web/src/engine/websites/NineMangaRU_e2e.ts @@ -7,7 +7,7 @@ const config = { }, container: { url: 'https://ru.ninemanga.com/manga/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5+%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B5%D0%B9%D1%88%D0%B5%D0%B3%D0%BE+%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0.html', - id: '/manga/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5+%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B5%D0%B9%D1%88%D0%B5%D0%B3%D0%BE+%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0.html' , + id: '/manga/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5+%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B5%D0%B9%D1%88%D0%B5%D0%B3%D0%BE+%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0.html', title: 'Рождение сильнейшего мастера Манга (The Distinguished Cute Master)', }, child: { diff --git a/web/src/engine/websites/WieManga_e2e.ts b/web/src/engine/websites/WieManga_e2e.ts index de28a9f874..37216f8f84 100644 --- a/web/src/engine/websites/WieManga_e2e.ts +++ b/web/src/engine/websites/WieManga_e2e.ts @@ -7,7 +7,7 @@ const config = { }, container: { url: 'https://www.wiemanga.com/manga/Solo_Leveling.html', - id: '/manga/Solo_Leveling.html' , + id: '/manga/Solo_Leveling.html', title: 'Solo Leveling', }, child: { From fcf641b77bde083269022a60541d434b3a8c08eb Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 15 Oct 2023 14:02:51 +0200 Subject: [PATCH 10/45] use new error in decorator --- web/src/engine/websites/decorators/TAADD.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts index 12fe26ff4f..f43605bde2 100644 --- a/web/src/engine/websites/decorators/TAADD.ts +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -1,6 +1,6 @@ import { FetchCSS, FetchRequest, FetchWindowCSS } from '../../FetchProvider'; import { type MangaScraper, type Manga, Chapter, Page } from '../../providers/MangaPlugin'; -import type * as Common from './Common'; +import * as Common from './Common'; export function MangaLabelExtractor(element: HTMLElement) { const title = ((element as HTMLMetaElement).content || element.textContent).replace(/(^\s*[Мм]анга|[Mm]anga\s*$)/, '').trim(); return title ; @@ -86,9 +86,8 @@ async function FetchChaptersSinglePageCSS(this: MangaScraper, manga: Manga, quer */ export function ChaptersSinglePageCSS(query: string = queryChapters, extractor = ChapterExtractor, bypassNsfwWarning = true) { return function DecorateClass(ctor: T, context?: ClassDecoratorContext): T { - if (context && context.kind !== 'class') { - throw new Error(context.name); - } + Common.ThrowOnUnsupportedDecoratorContext(context); + return class extends ctor { public async FetchChapters(this: MangaScraper, manga: Manga): Promise { return FetchChaptersSinglePageCSS.call(this, manga, query, extractor, bypassNsfwWarning); @@ -141,9 +140,8 @@ export async function FetchPagesMultiPagesCSS(this: MangaScraper, chapter: Chapt */ export function PagesMultiPageCSS(queryPages_arg: string = queryPages, querySubPages_arg: string = querySubPages, queryImages_arg: string = queryImages, extractSubPages: LinkExtractor = PageLinkExtractor) { return function DecorateClass(ctor: T, context?: ClassDecoratorContext): T { - if (context && context.kind !== 'class') { - throw new Error(context.name); - } + Common.ThrowOnUnsupportedDecoratorContext(context); + return class extends ctor { public async FetchPages(this: MangaScraper, chapter: Chapter): Promise { return FetchPagesMultiPagesCSS.call(this, chapter, queryPages_arg, querySubPages_arg, queryImages_arg, extractSubPages ); From e60fecbf886d57ca3b859ba37c692771278ea571 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Mon, 23 Oct 2023 18:00:08 +0200 Subject: [PATCH 11/45] Update _index.ts --- web/src/engine/websites/_index.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 2d4b4b0867..aa50cf51b6 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -231,6 +231,7 @@ export { default as MangaReadCO } from './MangaReadCO'; export { default as MangaRockTeam } from './MangaRockTeam'; export { default as MangaRocky } from './MangaRocky'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -309,6 +310,13 @@ export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NiveraFansub } from './NiveraFansub'; export { default as NoraNoFansub } from './NoraNoFansub'; export { default as NovelMic } from './NovelMic'; @@ -400,11 +408,13 @@ export { default as SundayWebry } from './SundayWebry'; export { default as SushiScanFR } from './SushiScanFR'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TonariNoYoungJump } from './TonariNoYoungJump'; @@ -442,6 +452,7 @@ export { default as WebtoonXYZ } from './WebtoonXYZ'; export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; export { default as WhimSubs } from './WhimSubs'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -620,12 +631,10 @@ export { default as Manamoa } from './legacy/Manamoa'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; export { default as Manga33 } from './legacy/Manga33'; -export { default as Manga99 } from './legacy/Manga99'; export { default as Manga1001 } from './legacy/Manga1001'; export { default as MangaArab } from './legacy/MangaArab'; export { default as MangaCat } from './legacy/MangaCat'; export { default as MangaCruzers } from './legacy/MangaCruzers'; -export { default as MangaDeep } from './legacy/MangaDeep'; export { default as MangaEdenEN } from './legacy/MangaEdenEN'; export { default as MangaEdenIT } from './legacy/MangaEdenIT'; export { default as Mangafast } from './legacy/Mangafast'; @@ -674,7 +683,6 @@ export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; export { default as MangaRomance } from './legacy/MangaRomance'; export { default as MangaRoom } from './legacy/MangaRoom'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaScouts } from './legacy/MangaScouts'; export { default as MangaSee } from './legacy/MangaSee'; @@ -733,13 +741,7 @@ export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; export { default as NineAnime } from './legacy/NineAnime'; export { default as NineEkor } from './legacy/NineEkor'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; export { default as NineMangaNet } from './legacy/NineMangaNet'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; export { default as NovelcoolEN } from './legacy/NovelcoolEN'; @@ -816,13 +818,11 @@ export { default as StormInHeaven } from './legacy/StormInHeaven'; export { default as Submanga } from './legacy/Submanga'; export { default as Sukima } from './legacy/Sukima'; export { default as SwordManga } from './legacy/SwordManga'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TapTrans } from './legacy/TapTrans'; export { default as Team1x1 } from './legacy/Team1x1'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as TheCatScans } from './legacy/TheCatScans'; export { default as TheNoNames } from './legacy/TheNoNames'; export { default as ThunderNovels } from './legacy/ThunderNovels'; @@ -872,7 +872,6 @@ export { default as WebNovelLive } from './legacy/WebNovelLive'; export { default as WeComics } from './legacy/WeComics'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 15df3bf5b87073644d1f30bb93a4897cef384037 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Thu, 2 Nov 2023 10:15:54 +0100 Subject: [PATCH 12/45] Update _index.ts --- web/src/engine/websites/_index.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 11d3cb7440..8bc1841e5f 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -245,6 +245,7 @@ export { default as MangaReader } from './MangaReader'; export { default as MangaRockTeam } from './MangaRockTeam'; export { default as MangaRocky } from './MangaRocky'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -322,6 +323,13 @@ export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NiveraFansub } from './NiveraFansub'; export { default as NoraNoFansub } from './NoraNoFansub'; export { default as NovelMic } from './NovelMic'; @@ -414,12 +422,14 @@ export { default as SundayWebry } from './SundayWebry'; export { default as SushiScanFR } from './SushiScanFR'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as Team1x1 } from './Team1x1'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TonariNoYoungJump } from './TonariNoYoungJump'; @@ -458,6 +468,7 @@ export { default as WebtoonXYZ } from './WebtoonXYZ'; export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; export { default as WhimSubs } from './WhimSubs'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -586,7 +597,6 @@ export { default as MangaRaw } from './legacy/MangaRaw'; export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; export { default as MangaRomance } from './legacy/MangaRomance'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaSee } from './legacy/MangaSee'; export { default as MangaShip } from './legacy/MangaShip'; @@ -618,12 +628,6 @@ export { default as NewToki } from './legacy/NewToki'; export { default as NhatTruyen } from './legacy/NhatTruyen'; export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; export { default as NovelcoolEN } from './legacy/NovelcoolEN'; @@ -659,11 +663,9 @@ export { default as SoftKomik } from './legacy/SoftKomik'; export { default as SouDongMan } from './legacy/SouDongMan'; export { default as StoriaDash } from './legacy/StoriaDash'; export { default as Submanga } from './legacy/Submanga'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as ToCoronaEx } from './legacy/ToCoronaEx'; export { default as ToomicsDE } from './legacy/ToomicsDE'; export { default as ToomicsEN } from './legacy/ToomicsEN'; @@ -693,7 +695,6 @@ export { default as WBNovel } from './legacy/WBNovel'; export { default as WebComicGamma } from './legacy/WebComicGamma'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 0a467b67663481bcfbd3788350d473df54a38a72 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Wed, 8 Nov 2023 18:09:39 +0100 Subject: [PATCH 13/45] better regexp --- web/src/engine/websites/MangaRussia.ts | 2 +- web/src/engine/websites/NineMangaBR.ts | 2 +- web/src/engine/websites/NineMangaDE.ts | 2 +- web/src/engine/websites/NineMangaEN.ts | 2 +- web/src/engine/websites/NineMangaES.ts | 2 +- web/src/engine/websites/NineMangaFR.ts | 2 +- web/src/engine/websites/NineMangaIT.ts | 2 +- web/src/engine/websites/NineMangaRU.ts | 2 +- web/src/engine/websites/TAADD.ts | 2 +- web/src/engine/websites/TenManga.ts | 2 +- web/src/engine/websites/WieManga.ts | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/web/src/engine/websites/MangaRussia.ts b/web/src/engine/websites/MangaRussia.ts index 7b1106bb97..01154e9ae6 100644 --- a/web/src/engine/websites/MangaRussia.ts +++ b/web/src/engine/websites/MangaRussia.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/www\.mangarussia\.com\/manga\/\S+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/www\.mangarussia\.com\/manga\/[^/]+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) @TAADD.ChaptersSinglePageCSS('div.chapterlist table tr td.col1 a', TAADD.ChapterExtractor, false) @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaBR.ts b/web/src/engine/websites/NineMangaBR.ts index 08a477ab19..676cb12054 100644 --- a/web/src/engine/websites/NineMangaBR.ts +++ b/web/src/engine/websites/NineMangaBR.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/br\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/br\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaDE.ts b/web/src/engine/websites/NineMangaDE.ts index 5e3fd5d644..de8f1d20cf 100644 --- a/web/src/engine/websites/NineMangaDE.ts +++ b/web/src/engine/websites/NineMangaDE.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/de\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/de\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaEN.ts b/web/src/engine/websites/NineMangaEN.ts index c7ba192da0..177efe8eb5 100644 --- a/web/src/engine/websites/NineMangaEN.ts +++ b/web/src/engine/websites/NineMangaEN.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/en\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/en\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaES.ts b/web/src/engine/websites/NineMangaES.ts index bb6e207192..cc531c8aeb 100644 --- a/web/src/engine/websites/NineMangaES.ts +++ b/web/src/engine/websites/NineMangaES.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/es\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/es\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaFR.ts b/web/src/engine/websites/NineMangaFR.ts index 4910c379e8..0f4846d001 100644 --- a/web/src/engine/websites/NineMangaFR.ts +++ b/web/src/engine/websites/NineMangaFR.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/fr\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/fr\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaIT.ts b/web/src/engine/websites/NineMangaIT.ts index 45a57fc3c5..5e1ad5f169 100644 --- a/web/src/engine/websites/NineMangaIT.ts +++ b/web/src/engine/websites/NineMangaIT.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/it\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/it\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaRU.ts b/web/src/engine/websites/NineMangaRU.ts index 36462996cb..a78ac50a24 100644 --- a/web/src/engine/websites/NineMangaRU.ts +++ b/web/src/engine/websites/NineMangaRU.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/ru\.ninemanga\.com\/manga\/\S+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/ru\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/TAADD.ts b/web/src/engine/websites/TAADD.ts index 8c31d653e7..9102a526c0 100644 --- a/web/src/engine/websites/TAADD.ts +++ b/web/src/engine/websites/TAADD.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/www\.taadd\.com\/book\/\S+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/www\.taadd\.com\/book\/[^/]+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/TenManga.ts b/web/src/engine/websites/TenManga.ts index 9b145453c4..371e15ff15 100644 --- a/web/src/engine/websites/TenManga.ts +++ b/web/src/engine/websites/TenManga.ts @@ -9,7 +9,7 @@ function ChapterExtractor(anchor: HTMLAnchorElement) { return { id, title }; } -@Common.MangaCSS(/^https?:\/\/www\.tenmanga\.com\/book\/\S+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/www\.tenmanga\.com\/book\/[^/]+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, 'section.book-list div.book-item a:first-of-type', 1, 1, 0, Common.AnchorInfoExtractor(true)) @TAADD.ChaptersSinglePageCSS('div.chp-item a', ChapterExtractor) @TAADD.PagesMultiPageCSS('div.option-list.chp-selection-list[option_name="page_head"]', 'div[option_val]') diff --git a/web/src/engine/websites/WieManga.ts b/web/src/engine/websites/WieManga.ts index ccb36ba6a3..4cc8601153 100644 --- a/web/src/engine/websites/WieManga.ts +++ b/web/src/engine/websites/WieManga.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/www\.wiemanga\.com\/manga\/\S+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^https?:\/\/www\.wiemanga\.com\/manga\/[^/]+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) @TAADD.ChaptersSinglePageCSS('div.chapterlist table tr td.col1 a', TAADD.ChapterExtractor, false) @TAADD.PagesMultiPageCSS() From d57c36ce88644fec31dbeff166e1b1fec3905048 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sun, 12 Nov 2023 16:57:18 +0100 Subject: [PATCH 14/45] use origin placeholder --- web/src/engine/websites/MangaRussia.ts | 2 +- web/src/engine/websites/NineMangaBR.ts | 2 +- web/src/engine/websites/NineMangaDE.ts | 2 +- web/src/engine/websites/NineMangaEN.ts | 2 +- web/src/engine/websites/NineMangaES.ts | 2 +- web/src/engine/websites/NineMangaFR.ts | 2 +- web/src/engine/websites/NineMangaIT.ts | 2 +- web/src/engine/websites/NineMangaRU.ts | 2 +- web/src/engine/websites/TAADD.ts | 2 +- web/src/engine/websites/TenManga.ts | 2 +- web/src/engine/websites/WieManga.ts | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/web/src/engine/websites/MangaRussia.ts b/web/src/engine/websites/MangaRussia.ts index 01154e9ae6..2c2c53aa08 100644 --- a/web/src/engine/websites/MangaRussia.ts +++ b/web/src/engine/websites/MangaRussia.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/www\.mangarussia\.com\/manga\/[^/]+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) @TAADD.ChaptersSinglePageCSS('div.chapterlist table tr td.col1 a', TAADD.ChapterExtractor, false) @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaBR.ts b/web/src/engine/websites/NineMangaBR.ts index 676cb12054..895c18812c 100644 --- a/web/src/engine/websites/NineMangaBR.ts +++ b/web/src/engine/websites/NineMangaBR.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/br\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaDE.ts b/web/src/engine/websites/NineMangaDE.ts index de8f1d20cf..1013372e84 100644 --- a/web/src/engine/websites/NineMangaDE.ts +++ b/web/src/engine/websites/NineMangaDE.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/de\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaEN.ts b/web/src/engine/websites/NineMangaEN.ts index 177efe8eb5..a22931e684 100644 --- a/web/src/engine/websites/NineMangaEN.ts +++ b/web/src/engine/websites/NineMangaEN.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/en\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaES.ts b/web/src/engine/websites/NineMangaES.ts index cc531c8aeb..bbe72a32fa 100644 --- a/web/src/engine/websites/NineMangaES.ts +++ b/web/src/engine/websites/NineMangaES.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/es\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaFR.ts b/web/src/engine/websites/NineMangaFR.ts index 0f4846d001..357ac03514 100644 --- a/web/src/engine/websites/NineMangaFR.ts +++ b/web/src/engine/websites/NineMangaFR.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/fr\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaIT.ts b/web/src/engine/websites/NineMangaIT.ts index 5e1ad5f169..f8f7e68be2 100644 --- a/web/src/engine/websites/NineMangaIT.ts +++ b/web/src/engine/websites/NineMangaIT.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/it\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/NineMangaRU.ts b/web/src/engine/websites/NineMangaRU.ts index a78ac50a24..795dd87151 100644 --- a/web/src/engine/websites/NineMangaRU.ts +++ b/web/src/engine/websites/NineMangaRU.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/ru\.ninemanga\.com\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html/, 'div.manga div.ttline h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/TAADD.ts b/web/src/engine/websites/TAADD.ts index 9102a526c0..f5002d8f1b 100644 --- a/web/src/engine/websites/TAADD.ts +++ b/web/src/engine/websites/TAADD.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/www\.taadd\.com\/book\/[^/]+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/book\/[^/]+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas) @TAADD.ChaptersSinglePageCSS() @TAADD.PagesMultiPageCSS() diff --git a/web/src/engine/websites/TenManga.ts b/web/src/engine/websites/TenManga.ts index 371e15ff15..671db9197c 100644 --- a/web/src/engine/websites/TenManga.ts +++ b/web/src/engine/websites/TenManga.ts @@ -9,7 +9,7 @@ function ChapterExtractor(anchor: HTMLAnchorElement) { return { id, title }; } -@Common.MangaCSS(/^https?:\/\/www\.tenmanga\.com\/book\/[^/]+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/book\/[^/]+\.html$/, TAADD.queryMangaTitleFromURI, TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, 'section.book-list div.book-item a:first-of-type', 1, 1, 0, Common.AnchorInfoExtractor(true)) @TAADD.ChaptersSinglePageCSS('div.chp-item a', ChapterExtractor) @TAADD.PagesMultiPageCSS('div.option-list.chp-selection-list[option_name="page_head"]', 'div[option_val]') diff --git a/web/src/engine/websites/WieManga.ts b/web/src/engine/websites/WieManga.ts index 4cc8601153..8e91ae35f9 100644 --- a/web/src/engine/websites/WieManga.ts +++ b/web/src/engine/websites/WieManga.ts @@ -4,7 +4,7 @@ import { DecoratableMangaScraper } from '../providers/MangaPlugin'; import * as TAADD from './decorators/TAADD'; import * as Common from './decorators/Common'; -@Common.MangaCSS(/^https?:\/\/www\.wiemanga\.com\/manga\/[^/]+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) +@Common.MangaCSS(/^{origin}\/manga\/[^/]+\.html$/, 'div.mangabookbox div.bookmessagebox h1', TAADD.MangaLabelExtractor) @Common.MangasMultiPageCSS(TAADD.mangaPath, TAADD.queryMangas, 1, 1, 0, Common.AnchorInfoExtractor(true)) @TAADD.ChaptersSinglePageCSS('div.chapterlist table tr td.col1 a', TAADD.ChapterExtractor, false) @TAADD.PagesMultiPageCSS() From 953e24e6f928d21e11963138f2742bc2a26c7b1b Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Thu, 14 Dec 2023 12:52:24 +0100 Subject: [PATCH 15/45] Update _index.ts --- web/src/engine/websites/_index.ts | 147 ++++++++++++++++++++++-------- 1 file changed, 110 insertions(+), 37 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index b44ee809cb..c0e090aded 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -1,20 +1,29 @@ // Implemented Websites +export { default as AdonisFansub } from './AdonisFansub'; export { default as AGCScanlation } from './AGCScanlation'; +export { default as Ainzscans } from './Ainzscans'; export { default as AkuManga } from './AkuManga'; +export { default as Alceascan } from './Alceascan'; export { default as AlliedFansub } from './AlliedFansub'; export { default as AllPornComic } from './AllPornComic'; export { default as Alphapolis } from './Alphapolis'; export { default as AnataNoMotokare } from './AnataNoMotokare'; +export { default as AniGliScans } from './AniGliScans'; export { default as Anikiga } from './Anikiga'; +export { default as AnimeSama } from './AnimeSama'; export { default as Anisamanga } from './Anisamanga'; export { default as AnshScans } from './AnshScans'; +export { default as AnzManga } from './AnzManga'; export { default as ApollComics } from './ApollComics'; export { default as ApollToons } from './ApollToons'; +export { default as AquaManga } from './AquaManga'; +export { default as ArcaneScans } from './ArcaneScans'; export { default as AresManga } from './AresManga'; export { default as ArgosScan } from './ArgosScan'; export { default as ArthurScan } from './ArthurScan'; export { default as AsmHentai } from './AsmHentai'; export { default as AssortedScans } from './AssortedScans'; +export { default as AstralManga } from './AstralManga'; export { default as AsuraScans } from './AsuraScans'; export { default as AsuraScansTR } from './AsuraScansTR'; export { default as Atikrost } from './Atikrost'; @@ -22,11 +31,14 @@ export { default as AyaToon } from './AyaToon'; export { default as AzoraWorld } from './AzoraWorld'; export { default as AzureManga } from './AzureManga'; export { default as BacaKomik } from './BacaKomik'; +export { default as BacaManga } from './BacaManga'; export { default as BakaMan } from './BakaMan'; export { default as Batoto } from './Batoto'; export { default as BestManga } from './BestManga'; +export { default as BestManhua } from './BestManhua'; export { default as BibiManga } from './BibiManga'; export { default as BlogTruyen } from './BlogTruyen'; +export { default as Bokugents } from './Bokugents'; export { default as Boosei } from './Boosei'; export { default as BoysLove } from './BoysLove'; export { default as CarToonMad } from './CarToonMad'; @@ -35,12 +47,16 @@ export { default as CeriseScans } from './CeriseScans'; export { default as ChibiManga } from './ChibiManga'; export { default as CizgiRomanArsivi } from './CizgiRomanArsivi'; export { default as CloverManga } from './CloverManga'; +export { default as Cocorip } from './Cocorip'; +export { default as CoffeeManga } from './CoffeeManga'; export { default as ColoredManga } from './ColoredManga'; export { default as ComicAction } from './ComicAction'; export { default as ComicBorder } from './ComicBorder'; export { default as ComicBushi } from './ComicBushi'; export { default as ComicDays } from './ComicDays'; export { default as ComicExtra } from './ComicExtra'; +export { default as ComicFuz } from './ComicFuz'; +export { default as ComicFX } from './ComicFX'; export { default as ComicGardo } from './ComicGardo'; export { default as ComicK } from './ComicK'; export { default as Comico } from './Comico'; @@ -51,14 +67,23 @@ export { default as ComicWalker } from './ComicWalker'; export { default as ComicZenon } from './ComicZenon'; export { default as ComicZerosum } from './ComicZerosum'; export { default as ComikeyArchive } from './ComikeyArchive'; +export { default as ConstellarScans } from './ConstellarScans'; +export { default as CopyManga } from './CopyManga'; export { default as CopyPasteScan } from './CopyPasteScan'; +export { default as CosmicScans } from './CosmicScans'; +export { default as CosmicScansID } from './CosmicScansID'; +export { default as CovenScan } from './CovenScan'; export { default as CrunchyScan } from './CrunchyScan'; export { default as CyComi } from './CyComi'; +export { default as CypherScans } from './CypherScans'; export { default as DankeFursLesen } from './DankeFursLesen'; +export { default as Daysneo } from './Daysneo'; export { default as DeathTollScans } from './DeathTollScans'; export { default as DecadenceScans } from './DecadenceScans'; export { default as DemoneCeleste } from './DemoneCeleste'; +export { default as DemonSect } from './DemonSect'; export { default as Desu } from './Desu'; +export { default as DiamondFansub } from './DiamondFansub'; export { default as DigitalTeam } from './DigitalTeam'; export { default as DisasterScans } from './DisasterScans'; export { default as DiskusScan } from './DiskusScan'; @@ -68,10 +93,11 @@ export { default as Doujin69 } from './Doujin69'; export { default as DoujinDesu } from './DoujinDesu'; export { default as DoujinHentai } from './DoujinHentai'; export { default as Doujins } from './Doujins'; +export { default as DoujinZa } from './DoujinZa'; export { default as DragonTea } from './DragonTea'; export { default as DragonTranslation } from './DragonTranslation'; +export { default as DrakeScans } from './DrakeScans'; export { default as DropeScan } from './DropeScan'; -export { default as DuniaKomik } from './DuniaKomik'; export { default as DynastyScans } from './DynastyScans'; export { default as EarlyManga } from './EarlyManga'; export { default as EightMuses } from './EightMuses'; @@ -79,26 +105,36 @@ export { default as EightMusesXXX } from './EightMusesXXX'; export { default as ElevenToon } from './ElevenToon'; export { default as EvilFlowers } from './EvilFlowers'; export { default as FallenAngelsScans } from './FallenAngelsScans'; +export { default as FbSquads } from './FbSquads'; export { default as FenixScan } from './FenixScan'; export { default as FinalScans } from './FinalScans'; -export { default as FirstKissManga } from './FirstKissManga'; export { default as FlameComics } from './FlameComics'; +export { default as FMTeam } from './FMTeam'; +export { default as FoxWhiteScan } from './FoxWhiteScan'; export { default as FranxxMangas } from './FranxxMangas'; +export { default as FreakScans } from './FreakScans'; export { default as FreeComicOnline } from './FreeComicOnline'; export { default as FreeManga } from './FreeManga'; export { default as FreeWebtoonCoins } from './FreeWebtoonCoins'; export { default as FRScan } from './FRScan'; export { default as FunManga } from './FunManga'; export { default as FuryoSquad } from './FuryoSquad'; +export { default as Futari } from './Futari'; +export { default as GalaxyAction } from './GalaxyAction'; +export { default as GalaxyManga } from './GalaxyManga'; export { default as GanGanOnline } from './GanGanOnline'; +export { default as Ganma } from './Ganma'; export { default as GateManga } from './GateManga'; export { default as GDScans } from './GDScans'; +export { default as GekkouScans } from './GekkouScans'; +export { default as GhostFansub } from './GhostFansub'; export { default as GloryManga } from './GloryManga'; export { default as Gntai } from './Gntai'; export { default as GoldenMangas } from './GoldenMangas'; export { default as GolDragon } from './GolDragon'; export { default as GoofFansub } from './GoofFansub'; export { default as GourmetScans } from './GourmetScans'; +export { default as GTOTheGreatSite } from './GTOTheGreatSite'; export { default as GuFengMH8 } from './GuFengMH8'; export { default as GuncelManga } from './GuncelManga'; export { default as GuruKomik } from './GuruKomik'; @@ -106,6 +142,8 @@ export { default as Hachirumi } from './Hachirumi'; export { default as HadesNoFansub } from './HadesNoFansub'; export { default as HamTruyen } from './HamTruyen'; export { default as HarmonyScan } from './HarmonyScan'; +export { default as HastaTeam } from './HastaTeam'; +export { default as HastaTeamDDT } from './HastaTeamDDT'; export { default as Hayalistic } from './Hayalistic'; export { default as HeavenManga2 } from './HeavenManga2'; export { default as HenChan } from './HenChan'; @@ -120,26 +158,35 @@ export { default as HentaiWebtoon } from './HentaiWebtoon'; export { default as HentaiZone } from './HentaiZone'; export { default as HerosWeb } from './HerosWeb'; export { default as HikariScan } from './HikariScan'; +export { default as Hinapyon } from './Hinapyon'; export { default as HiperCool } from './HiperCool'; export { default as Hiperdex } from './Hiperdex'; export { default as HManhwa } from './HManhwa'; export { default as HniScanTrad } from './HniScanTrad'; export { default as HqNow } from './HqNow'; export { default as HunterScan } from './HunterScan'; +export { default as HunterScanEN } from './HunterScanEN'; export { default as IceKr } from './IceKr'; export { default as IMHentai } from './IMHentai'; export { default as ImmortalUpdates } from './ImmortalUpdates'; +export { default as ImperioScans } from './ImperioScans'; +export { default as InfraFandub } from './InfraFandub'; export { default as InManga } from './InManga'; export { default as InmortalScan } from './InmortalScan'; export { default as InstaManhwa } from './InstaManhwa'; +export { default as iqiyi } from './iqiyi'; export { default as IrisScanlator } from './IrisScanlator'; export { default as IsekaiScan } from './IsekaiScan'; export { default as ItsYourRightManhua } from './ItsYourRightManhua'; export { default as JapScan } from './JapScan'; export { default as Jmana1 } from './Jmana1'; export { default as Jpmangas } from './Jpmangas'; +export { default as KaiScans } from './KaiScans'; +export { default as Kakaopage } from './Kakaopage'; export { default as Kanjiku } from './Kanjiku'; +export { default as Kanzenin } from './Kanzenin'; export { default as Katakomik } from './Katakomik'; +export { default as KingOfManga } from './KingOfManga'; export { default as Kiryuu } from './Kiryuu'; export { default as KissmangaIN } from './KissmangaIN'; export { default as KissmangaORG } from './KissmangaORG'; @@ -148,19 +195,23 @@ export { default as KnightNoFansub } from './KnightNoFansub'; export { default as KolNovel } from './KolNovel'; export { default as KomikAV } from './KomikAV'; export { default as KomikCast } from './KomikCast'; +export { default as KomikGo } from './KomikGo'; export { default as Komikid } from './Komikid'; export { default as KomikIndo } from './KomikIndo'; export { default as KomikIndoId } from './KomikIndoId'; +export { default as KomikindoInfo } from './KomikindoInfo'; +export { default as KomikLab } from './KomikLab'; export { default as KomikStation } from './KomikStation'; export { default as KomikTap } from './KomikTap'; export { default as Komiku } from './Komiku'; export { default as KomikuCOM } from './KomikuCOM'; export { default as KSGroupScans } from './KSGroupScans'; export { default as Kuaikanmanhua } from './Kuaikanmanhua'; -export { default as KumaScans } from './KumaScans'; +export { default as kuimh } from './kuimh'; export { default as KumoTran } from './KumoTran'; export { default as KurageBunch } from './KurageBunch'; export { default as LamiManga } from './LamiManga'; +export { default as LeerCapitulo } from './LeerCapitulo'; export { default as LegacyScans } from './LegacyScans'; export { default as Leitor } from './Leitor'; export { default as LELManga } from './LELManga'; @@ -170,14 +221,18 @@ export { default as LeviatanScans } from './LeviatanScans'; export { default as LewdManhwa } from './LewdManhwa'; export { default as LHTranslation } from './LHTranslation'; export { default as LianScans } from './LianScans'; +export { default as LikeManga } from './LikeManga'; export { default as LilyManga } from './LilyManga'; export { default as LimaScans } from './LimaScans'; export { default as LireScan } from './LireScan'; export { default as LittleGarden } from './LittleGarden'; export { default as LSHiver } from './LSHiver'; export { default as LuminousScans } from './LuminousScans'; +export { default as LunarScans } from './LunarScans'; +export { default as LupiTeam } from './LupiTeam'; export { default as Luscious } from './Luscious'; export { default as LynxScans } from './LynxScans'; +export { default as MadaraDex } from './MadaraDex'; export { default as MagComi } from './MagComi'; export { default as MagicalTranslators } from './MagicalTranslators'; export { default as MaID } from './MaID'; @@ -192,9 +247,11 @@ export { default as MangaAy } from './MangaAy'; export { default as MangaBat } from './MangaBat'; export { default as Mangabaz } from './Mangabaz'; export { default as MangaBob } from './MangaBob'; +export { default as Mangabox } from './Mangabox'; export { default as MangaBuddy } from './MangaBuddy'; export { default as MangaCanBlog } from './MangaCanBlog'; export { default as MangaChan } from './MangaChan'; +export { default as MangaChill } from './MangaChill'; export { default as Mangacim } from './Mangacim'; export { default as MangaClash } from './MangaClash'; export { default as MangaCrab } from './MangaCrab'; @@ -213,8 +270,9 @@ export { default as MangaForest } from './MangaForest'; export { default as MangaForFree } from './MangaForFree'; export { default as MangaFort } from './MangaFort'; export { default as MangaFox } from './MangaFox'; +export { default as MangaFoxFull } from './MangaFoxFull'; +export { default as MangaGecko } from './MangaGecko'; export { default as MangaGG } from './MangaGG'; -export { default as MangaGreat } from './MangaGreat'; export { default as MangaHasu } from './MangaHasu'; export { default as MangaHentai } from './MangaHentai'; export { default as MangaHere } from './MangaHere'; @@ -223,11 +281,10 @@ export { default as MangaID } from './MangaID'; export { default as MangaInn } from './MangaInn'; export { default as MangaIro } from './MangaIro'; export { default as MangaJar } from './MangaJar'; +export { default as Mangajp } from './Mangajp'; export { default as MangaKakalot } from './MangaKakalot'; export { default as MangaKatana } from './MangaKatana'; export { default as MangaKawaii } from './MangaKawaii'; -export { default as MangaKeyfi } from './MangaKeyfi'; -export { default as MangaKid } from './MangaKid'; export { default as MangaKik } from './MangaKik'; export { default as MangaKiss } from './MangaKiss'; export { default as MangaKita } from './MangaKita'; @@ -235,23 +292,38 @@ export { default as MangaKitsu } from './MangaKitsu'; export { default as MangaKomi } from './MangaKomi'; export { default as Mangakyo } from './Mangakyo'; export { default as Mangalek } from './Mangalek'; +export { default as MangaLib } from './MangaLib'; +export { default as MangaLife } from './MangaLife'; export { default as MangaLike } from './MangaLike'; +export { default as MangaLink } from './MangaLink'; export { default as MangaLover } from './MangaLover'; export { default as MangaMonarca } from './MangaMonarca'; -export { default as MangaNel } from './MangaNel'; +export { default as MangaNato } from './MangaNato'; export { default as MangaNexus } from './MangaNexus'; export { default as MangaOkur } from './MangaOkur'; +export { default as MangaOkuTR } from './MangaOkuTR'; +export { default as MangaOni } from './MangaOni'; +export { default as MangaOnlineTeam } from './MangaOnlineTeam'; +export { default as MangaOwlio } from './MangaOwlio'; +export { default as MangaPanda } from './MangaPanda'; +export { default as MangaParkPublisher } from './MangaParkPublisher'; export { default as MangaPill } from './MangaPill'; +export { default as MangaPro } from './MangaPro'; +export { default as MangaPure } from './MangaPure'; export { default as MangaRead } from './MangaRead'; export { default as MangaReadCO } from './MangaReadCO'; export { default as MangaReader } from './MangaReader'; export { default as MangaRockTeam } from './MangaRockTeam'; export { default as MangaRocky } from './MangaRocky'; +export { default as MangaRolls } from './MangaRolls'; +export { default as MangaRomance } from './MangaRomance'; export { default as MangaRose } from './MangaRose'; export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; +export { default as MangaSect } from './MangaSect'; +export { default as MangaSee } from './MangaSee'; export { default as MangaSehri } from './MangaSehri'; export { default as MangaShiro } from './MangaShiro'; export { default as MangasOrigines } from './MangasOrigines'; @@ -274,7 +346,7 @@ export { default as MangaWOW } from './MangaWOW'; export { default as MangaWT } from './MangaWT'; export { default as MangaYeh } from './MangaYeh'; export { default as Mangaz } from './Mangaz'; -export { default as Mangkomik } from './Mangkomik'; +export { default as ManHatic } from './ManHatic'; export { default as ManhuaAZ } from './ManhuaAZ'; export { default as ManHuaDex } from './ManHuaDex'; export { default as ManhuaFast } from './ManhuaFast'; @@ -287,17 +359,24 @@ export { default as ManhuaScan } from './ManhuaScan'; export { default as Manhuass } from './Manhuass'; export { default as ManhuaUs } from './ManhuaUs'; export { default as Manhwa18 } from './Manhwa18'; +export { default as Manhwa18cc } from './Manhwa18cc'; +export { default as Manhwa68 } from './Manhwa68'; export { default as ManhwaEighteen } from './ManhwaEighteen'; +export { default as ManhwaFreak } from './ManhwaFreak'; export { default as ManhwaFull } from './ManhwaFull'; export { default as ManhwaHentai } from './ManhwaHentai'; export { default as ManhwaHentaiMe } from './ManhwaHentaiMe'; +export { default as ManhwaHub } from './ManhwaHub'; export { default as ManhwaIndo } from './ManhwaIndo'; export { default as Manhwaland } from './Manhwaland'; export { default as ManhwaLatino } from './ManhwaLatino'; +export { default as ManhwaList } from './ManhwaList'; export { default as ManhwaRaw } from './ManhwaRaw'; export { default as ManhwasNet } from './ManhwasNet'; export { default as ManhwaTop } from './ManhwaTop'; export { default as ManhwaWorld } from './ManhwaWorld'; +export { default as Manhwax } from './Manhwax'; +export { default as Manjanoon } from './Manjanoon'; export { default as ManmanApp } from './ManmanApp'; export { default as ManWe } from './ManWe'; export { default as ManyToon } from './ManyToon'; @@ -311,19 +390,24 @@ export { default as Migudm } from './Migudm'; export { default as MilfToon } from './MilfToon'; export { default as MindaFanSub } from './MindaFanSub'; export { default as MiniTwoScan } from './MiniTwoScan'; +export { default as mkzhan } from './mkzhan'; export { default as MMScans } from './MMScans'; export { default as ModeScanlator } from './ModeScanlator'; export { default as MomoNoHanaScan } from './MomoNoHanaScan'; export { default as MonochromeScans } from './MonochromeScans'; export { default as MonoManga } from './MonoManga'; export { default as MoonWitchInLove } from './MoonWitchInLove'; +export { default as NatsuID } from './NatsuID'; export { default as Nekomik } from './Nekomik'; export { default as NeoxScan } from './NeoxScan'; export { default as NeuManga } from './NeuManga'; export { default as NewType } from './NewType'; +export { default as NextScan } from './NextScan'; export { default as Ngomik } from './Ngomik'; +export { default as NHentaiCom } from './NHentaiCom'; export { default as NightComic } from './NightComic'; export { default as Nightow } from './Nightow'; +export { default as NightScans } from './NightScans'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; export { default as NineMangaBR } from './NineMangaBR'; @@ -333,18 +417,29 @@ export { default as NineMangaES } from './NineMangaES'; export { default as NineMangaFR } from './NineMangaFR'; export { default as NineMangaIT } from './NineMangaIT'; export { default as NineMangaRU } from './NineMangaRU'; +export { default as NirvanaManga } from './NirvanaManga'; +export { default as NitroManga } from './NitroManga'; export { default as NiveraFansub } from './NiveraFansub'; +export { default as Nonbiri } from './Nonbiri'; export { default as NoraNoFansub } from './NoraNoFansub'; +export { default as Noromax } from './Noromax'; export { default as NovelMic } from './NovelMic'; export { default as OlympusScanlation } from './OlympusScanlation'; export { default as OnMangaMe } from './OnMangaMe'; export { default as Opiatoon } from './Opiatoon'; -export { default as OzulScans } from './OzulScans'; +export { default as Oremanga } from './Oremanga'; +export { default as OrigamiOrpheans } from './OrigamiOrpheans'; +export { default as Otsugami } from './Otsugami'; export { default as PairOfTwo } from './PairOfTwo'; export { default as PatyScans } from './PatyScans'; export { default as PCNet } from './PCNet'; +export { default as PeanuToon } from './PeanuToon'; export { default as PelaTeam } from './PelaTeam'; export { default as Penlab } from './Penlab'; +export { default as PhenixScans } from './PhenixScans'; +export { default as PhoenixScansIT } from './PhoenixScansIT'; +export { default as Piccoma } from './Piccoma'; +export { default as PiccomaFR } from './PiccomaFR'; export { default as PiedPiper } from './PiedPiper'; export { default as PijamaliKoi } from './PijamaliKoi'; export { default as PixivComics } from './PixivComics'; @@ -354,10 +449,10 @@ export { default as PornComix } from './PornComix'; export { default as PornComixOnline } from './PornComixOnline'; export { default as PowerManga } from './PowerManga'; export { default as PrismaHentai } from './PrismaHentai'; -export { default as PrismaScan } from './PrismaScan'; export { default as ProjetoScanlator } from './ProjetoScanlator'; export { default as Pururin } from './Pururin'; export { default as Pzykosis666HFansub } from './Pzykosis666HFansub'; +export { default as QuantumScans } from './QuantumScans'; export { default as Rackus } from './Rackus'; export { default as RagnarokScan } from './RagnarokScan'; export { default as RaikiScan } from './RaikiScan'; @@ -368,6 +463,7 @@ export { default as RavensScansES } from './RavensScansES'; export { default as RawDevart } from './RawDevart'; export { default as Rawkuma } from './Rawkuma'; export { default as RawSenManga } from './RawSenManga'; +export { default as ReadComicOnline } from './ReadComicOnline'; export { default as ReadComicsOnline } from './ReadComicsOnline'; export { default as ReadFreeComics } from './ReadFreeComics'; export { default as ReadKomik } from './ReadKomik'; @@ -380,6 +476,7 @@ export { default as ReaperScansBR } from './ReaperScansBR'; export { default as ReaperScansFR } from './ReaperScansFR'; export { default as ReaperScansTR } from './ReaperScansTR'; export { default as ResetScans } from './ResetScans'; +export { default as Retsu } from './Retsu'; export { default as RizzComics } from './RizzComics'; export { default as RomantikManga } from './RomantikManga'; export { default as S2Manga } from './S2Manga'; @@ -402,6 +499,7 @@ export { default as SenManga } from './SenManga'; export { default as SenpaiEdiciones } from './SenpaiEdiciones'; export { default as SeriManga } from './SeriManga'; export { default as SetsuScans } from './SetsuScans'; +export { default as Seven8te } from './Seven8te'; export { default as ShadowMangas } from './ShadowMangas'; export { default as Shakai } from './Shakai'; export { default as SheaKomik } from './SheaKomik'; @@ -422,7 +520,6 @@ export { default as Siyahmelek } from './Siyahmelek'; export { default as StickHorse } from './StickHorse'; export { default as Sukima } from './Sukima'; export { default as SundayWebry } from './SundayWebry'; -export { default as SushiScanFR } from './SushiScanFR'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; export { default as TAADD } from './TAADD'; @@ -458,6 +555,7 @@ export { default as TvYManga } from './TvYManga'; export { default as UnionMangas } from './UnionMangas'; export { default as UraSunday } from './UraSunday'; export { default as UzayManga } from './UzayManga'; +export { default as ViyaFansub } from './ViyaFansub'; export { default as VNSharing } from './VNSharing'; export { default as VoidScans } from './VoidScans'; export { default as WantedTeam } from './WantedTeam'; @@ -477,6 +575,7 @@ export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; export { default as WordHero } from './WordHero'; export { default as XCaliBRScans } from './XCaliBRScans'; +export { default as xianman123 } from './xianman123'; export { default as XlecX } from './XlecX'; export { default as XoxoComics } from './XoxoComics'; export { default as XXXYaoi } from './XXXYaoi'; @@ -511,7 +610,6 @@ export { default as ComicBrise } from './legacy/ComicBrise'; export { default as ComicBunch } from './legacy/ComicBunch'; export { default as ComicEarthStar } from './legacy/ComicEarthStar'; export { default as ComicFire } from './legacy/ComicFire'; -export { default as ComicFX } from './legacy/ComicFX'; export { default as COMICMeDu } from './legacy/COMICMeDu'; export { default as ComicMeteor } from './legacy/ComicMeteor'; export { default as ComicPolaris } from './legacy/ComicPolaris'; @@ -519,7 +617,6 @@ export { default as ComicValkyrie } from './legacy/ComicValkyrie'; export { default as CopyToon } from './legacy/CopyToon'; export { default as CrunchyAnime } from './legacy/CrunchyAnime'; export { default as CrunchyManga } from './legacy/CrunchyManga'; -export { default as Daysneo } from './legacy/Daysneo'; export { default as Delitoon } from './legacy/Delitoon'; export { default as DelitoonDE } from './legacy/DelitoonDE'; export { default as DongManManhua } from './legacy/DongManManhua'; @@ -528,13 +625,8 @@ export { default as EpikManga } from './legacy/EpikManga'; export { default as Funbe } from './legacy/Funbe'; export { default as Futabanet } from './legacy/Futabanet'; export { default as GammaPlus } from './legacy/GammaPlus'; -export { default as Ganma } from './legacy/Ganma'; -export { default as GekkouScans } from './legacy/GekkouScans'; export { default as GManga } from './legacy/GManga'; -export { default as GTOTheGreatSite } from './legacy/GTOTheGreatSite'; export { default as Guoman8 } from './legacy/Guoman8'; -export { default as HastaTeam } from './legacy/HastaTeam'; -export { default as HastaTeamDDT } from './legacy/HastaTeamDDT'; export { default as HeavenManga } from './legacy/HeavenManga'; export { default as HentaiCafe } from './legacy/HentaiCafe'; export { default as HentaiShark } from './legacy/HentaiShark'; @@ -543,15 +635,11 @@ export { default as HoduComics } from './legacy/HoduComics'; export { default as HolyManga } from './legacy/HolyManga'; export { default as Imgur } from './legacy/Imgur'; export { default as ImiTui } from './legacy/ImiTui'; -export { default as iqiyi } from './legacy/iqiyi'; export { default as JapanRead } from './legacy/JapanRead'; export { default as JokerFansub } from './legacy/JokerFansub'; -export { default as kakaopage } from './legacy/kakaopage'; export { default as KanMan } from './legacy/KanMan'; export { default as KirishimaFansub } from './legacy/KirishimaFansub'; export { default as KissAway } from './legacy/KissAway'; -export { default as KissComic } from './legacy/KissComic'; -export { default as kuimh } from './legacy/kuimh'; export { default as kuman5 } from './legacy/kuman5'; export { default as KuManga } from './legacy/KuManga'; export { default as LectorManga } from './legacy/LectorManga'; @@ -565,9 +653,7 @@ export { default as LineWebtoonID } from './legacy/LineWebtoonID'; export { default as LineWebtoonTH } from './legacy/LineWebtoonTH'; export { default as LineWebtoonTranslate } from './legacy/LineWebtoonTranslate'; export { default as LineWebtoonZH } from './legacy/LineWebtoonZH'; -export { default as LupiTeam } from './legacy/LupiTeam'; export { default as LxHentai } from './legacy/LxHentai'; -export { default as MagaParkPublisher } from './legacy/MagaParkPublisher'; export { default as MagKan } from './legacy/MagKan'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; @@ -583,22 +669,13 @@ export { default as MangaHome } from './legacy/MangaHome'; export { default as MangaHub } from './legacy/MangaHub'; export { default as MangaKakalotFun } from './legacy/MangaKakalotFun'; export { default as MangaKu } from './legacy/MangaKu'; -export { default as MangaLife } from './legacy/MangaLife'; -export { default as MangaLink } from './legacy/MangaLink'; export { default as MangaLivre } from './legacy/MangaLivre'; -export { default as Manganelos } from './legacy/Manganelos'; -export { default as MangaOnline } from './legacy/MangaOnline'; -export { default as MangaOnlineBR } from './legacy/MangaOnlineBR'; export { default as MangaOnlineFun } from './legacy/MangaOnlineFun'; -export { default as MangaPanda } from './legacy/MangaPanda'; export { default as MangaPark } from './legacy/MangaPark'; export { default as MangaParkEN } from './legacy/MangaParkEN'; -export { default as MangaRaw } from './legacy/MangaRaw'; export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; -export { default as MangaRomance } from './legacy/MangaRomance'; export { default as MangAs } from './legacy/MangAs'; -export { default as MangaSee } from './legacy/MangaSee'; export { default as MangaShip } from './legacy/MangaShip'; export { default as MangaToonCN } from './legacy/MangaToonCN'; export { default as MangaToonEN } from './legacy/MangaToonEN'; @@ -615,7 +692,6 @@ export { default as ManhwasMen } from './legacy/ManhwasMen'; export { default as Manmankan } from './legacy/Manmankan'; export { default as MeioNovel } from './legacy/MeioNovel'; export { default as MintManga } from './legacy/MintManga'; -export { default as mkzhan } from './legacy/mkzhan'; export { default as MoreNovel } from './legacy/MoreNovel'; export { default as MuchoHentai } from './legacy/MuchoHentai'; export { default as MyAnimeListManga } from './legacy/MyAnimeListManga'; @@ -640,7 +716,6 @@ export { default as NovelRingan } from './legacy/NovelRingan'; export { default as Ohtabooks } from './legacy/Ohtabooks'; export { default as OnePieceTube } from './legacy/OnePieceTube'; export { default as OneTwoThreeHon } from './legacy/OneTwoThreeHon'; -export { default as PhoenixScansIT } from './legacy/PhoenixScansIT'; export { default as PlotTwistNoFansub } from './legacy/PlotTwistNoFansub'; export { default as Qiman5 } from './legacy/Qiman5'; export { default as Qimiaomh } from './legacy/Qimiaomh'; @@ -651,7 +726,6 @@ export { default as RoseliaScanlations } from './legacy/RoseliaScanlations'; export { default as SakuraManga } from './legacy/SakuraManga'; export { default as ScanManga } from './legacy/ScanManga'; export { default as SelfManga } from './legacy/SelfManga'; -export { default as Seven8te } from './legacy/Seven8te'; export { default as ShinobiScans } from './legacy/ShinobiScans'; export { default as ShonenJumpRookie } from './legacy/ShonenJumpRookie'; export { default as ShueishaMangaPlus } from './legacy/ShueishaMangaPlus'; @@ -700,7 +774,6 @@ export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; export { default as wuqimh } from './legacy/wuqimh'; export { default as WuxiaWorld } from './legacy/WuxiaWorld'; -export { default as xianman123 } from './legacy/xianman123'; export { default as YesMangasBR } from './legacy/YesMangasBR'; export { default as YoungJump } from './legacy/YoungJump'; export { default as ZinNovel } from './legacy/ZinNovel'; From 97987cdf01a3757b924a0215361374128ee6d0aa Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sat, 16 Dec 2023 11:34:43 +0100 Subject: [PATCH 16/45] Update TAADD.ts --- web/src/engine/websites/decorators/TAADD.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts index f43605bde2..38fc7d06a5 100644 --- a/web/src/engine/websites/decorators/TAADD.ts +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -65,8 +65,7 @@ async function FetchChaptersSinglePageCSS(this: MangaScraper, manga: Manga, quer } const request = new FetchRequest(url.href); - let data = await FetchCSS(request, query); - data = await FetchCSS(request, query); + const data = await FetchCSS(request, query); return data.map(element => { const { id, title } = extractor.call(this, element); const mangaTitle = manga.Title.replace(/[*^.|$?+\-()[\]{}\\/]/g, '\\$&'); //escape special regex chars in manga name From 280c2f471a29516f4fc3e4de2cafa30603874901 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Thu, 21 Dec 2023 15:12:17 +0100 Subject: [PATCH 17/45] Update _index.ts --- web/src/engine/websites/_index.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 767b0e6a73..883f8b68fe 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -322,6 +322,7 @@ export { default as MangaRocky } from './MangaRocky'; export { default as MangaRolls } from './MangaRolls'; export { default as MangaRomance } from './MangaRomance'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -412,6 +413,13 @@ export { default as Nightow } from './Nightow'; export { default as NightScans } from './NightScans'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NirvanaManga } from './NirvanaManga'; export { default as NitroManga } from './NitroManga'; export { default as NiveraFansub } from './NiveraFansub'; @@ -527,12 +535,14 @@ export { default as Summertoon } from './Summertoon'; export { default as SundayWebry } from './SundayWebry'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as Team1x1 } from './Team1x1'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; +export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TitanManga } from './TitanManga'; @@ -572,6 +582,7 @@ export { default as WebtoonXYZ } from './WebtoonXYZ'; export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; export { default as WhimSubs } from './WhimSubs'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -676,7 +687,6 @@ export { default as MangaPark } from './legacy/MangaPark'; export { default as MangaParkEN } from './legacy/MangaParkEN'; export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaShip } from './legacy/MangaShip'; export { default as MangaToonCN } from './legacy/MangaToonCN'; @@ -706,12 +716,6 @@ export { default as NewToki } from './legacy/NewToki'; export { default as NhatTruyen } from './legacy/NhatTruyen'; export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; export { default as NovelcoolEN } from './legacy/NovelcoolEN'; @@ -741,11 +745,9 @@ export { default as SleepyTranslations } from './legacy/SleepyTranslations'; export { default as SoftKomik } from './legacy/SoftKomik'; export { default as SouDongMan } from './legacy/SouDongMan'; export { default as StoriaDash } from './legacy/StoriaDash'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as ToCoronaEx } from './legacy/ToCoronaEx'; export { default as ToomicsDE } from './legacy/ToomicsDE'; export { default as ToomicsEN } from './legacy/ToomicsEN'; @@ -775,7 +777,6 @@ export { default as WBNovel } from './legacy/WBNovel'; export { default as WebComicGamma } from './legacy/WebComicGamma'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From 10a1cc8d4e5f44cc4f1f0f93a576980e96d22882 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Fri, 5 Jan 2024 17:26:40 +0100 Subject: [PATCH 18/45] Update _index.ts --- web/src/engine/websites/_index.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 010135bb09..317ccb9089 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -319,6 +319,7 @@ export { default as MangaRocky } from './MangaRocky'; export { default as MangaRolls } from './MangaRolls'; export { default as MangaRomance } from './MangaRomance'; export { default as MangaRose } from './MangaRose'; +export { default as MangaRussia } from './MangaRussia'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; @@ -410,6 +411,13 @@ export { default as Nightow } from './Nightow'; export { default as NightScans } from './NightScans'; export { default as NijiTranslations } from './NijiTranslations'; export { default as NineHentai } from './NineHentai'; +export { default as NineMangaBR } from './NineMangaBR'; +export { default as NineMangaDE } from './NineMangaDE'; +export { default as NineMangaEN } from './NineMangaEN'; +export { default as NineMangaES } from './NineMangaES'; +export { default as NineMangaFR } from './NineMangaFR'; +export { default as NineMangaIT } from './NineMangaIT'; +export { default as NineMangaRU } from './NineMangaRU'; export { default as NirvanaManga } from './NirvanaManga'; export { default as NitroManga } from './NitroManga'; export { default as NiveraFansub } from './NiveraFansub'; @@ -527,6 +535,7 @@ export { default as Summertoon } from './Summertoon'; export { default as SundayWebry } from './SundayWebry'; export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; +export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; @@ -534,6 +543,7 @@ export { default as Team1x1 } from './Team1x1'; export { default as TecnoScan } from './TecnoScan'; export { default as Tempestfansub } from './Tempestfansub'; export { default as TempestScans } from './TempestScans'; +export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TitanManga } from './TitanManga'; @@ -579,6 +589,7 @@ export { default as WebtoonXYZ } from './WebtoonXYZ'; export { default as WeiboManhua } from './WeiboManhua'; export { default as WestManga } from './WestManga'; export { default as WhimSubs } from './WhimSubs'; +export { default as WieManga } from './WieManga'; export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; @@ -685,7 +696,6 @@ export { default as MangaPark } from './legacy/MangaPark'; export { default as MangaParkEN } from './legacy/MangaParkEN'; export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; -export { default as MangaRussia } from './legacy/MangaRussia'; export { default as MangAs } from './legacy/MangAs'; export { default as MangaShip } from './legacy/MangaShip'; export { default as MangaToonCN } from './legacy/MangaToonCN'; @@ -715,12 +725,6 @@ export { default as NewToki } from './legacy/NewToki'; export { default as NhatTruyen } from './legacy/NhatTruyen'; export { default as NHentai } from './legacy/NHentai'; export { default as NicoNicoSeiga } from './legacy/NicoNicoSeiga'; -export { default as NineMangaBR } from './legacy/NineMangaBR'; -export { default as NineMangaDE } from './legacy/NineMangaDE'; -export { default as NineMangaEN } from './legacy/NineMangaEN'; -export { default as NineMangaES } from './legacy/NineMangaES'; -export { default as NineMangaIT } from './legacy/NineMangaIT'; -export { default as NineMangaRU } from './legacy/NineMangaRU'; export { default as NovelcoolBR } from './legacy/NovelcoolBR'; export { default as NovelcoolDE } from './legacy/NovelcoolDE'; export { default as NovelcoolEN } from './legacy/NovelcoolEN'; @@ -748,11 +752,9 @@ export { default as SleepyTranslations } from './legacy/SleepyTranslations'; export { default as SoftKomik } from './legacy/SoftKomik'; export { default as SouDongMan } from './legacy/SouDongMan'; export { default as StoriaDash } from './legacy/StoriaDash'; -export { default as TAADD } from './legacy/TAADD'; export { default as TaoManhua } from './legacy/TaoManhua'; export { default as Tapas } from './legacy/Tapas'; export { default as TencentComic } from './legacy/TencentComic'; -export { default as TenManga } from './legacy/TenManga'; export { default as ToCoronaEx } from './legacy/ToCoronaEx'; export { default as ToomicsDE } from './legacy/ToomicsDE'; export { default as ToomicsEN } from './legacy/ToomicsEN'; @@ -780,7 +782,6 @@ export { default as WBNovel } from './legacy/WBNovel'; export { default as WebComicGamma } from './legacy/WebComicGamma'; export { default as WeLoMa } from './legacy/WeLoMa'; export { default as WeLoveManga } from './legacy/WeLoveManga'; -export { default as WieManga } from './legacy/WieManga'; export { default as WoopRead } from './legacy/WoopRead'; export { default as WordExcerpt } from './legacy/WordExcerpt'; export { default as WordRain } from './legacy/WordRain'; From fb20a7ac3533fb9d9eb97bedb46af8c5884155d7 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Tue, 16 Jan 2024 13:59:39 +0100 Subject: [PATCH 19/45] improve platform abstraction --- web/src/engine/websites/decorators/TAADD.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts index 38fc7d06a5..82223146e1 100644 --- a/web/src/engine/websites/decorators/TAADD.ts +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -1,4 +1,4 @@ -import { FetchCSS, FetchRequest, FetchWindowCSS } from '../../FetchProvider'; +import { FetchCSS, FetchWindowCSS } from '../../platform/FetchProvider'; import { type MangaScraper, type Manga, Chapter, Page } from '../../providers/MangaPlugin'; import * as Common from './Common'; export function MangaLabelExtractor(element: HTMLElement) { @@ -64,7 +64,7 @@ async function FetchChaptersSinglePageCSS(this: MangaScraper, manga: Manga, quer url.searchParams.set('waring', '1'); //NineManga typo } - const request = new FetchRequest(url.href); + const request = new Request(url.href); const data = await FetchCSS(request, query); return data.map(element => { const { id, title } = extractor.call(this, element); @@ -111,7 +111,7 @@ export function ChaptersSinglePageCSS(query: string = queryChapters, extractor = * */ export async function FetchPagesMultiPagesCSS(this: MangaScraper, chapter: Chapter, queryPages_arg: string, querySubPages_arg: string, queryImages_arg: string, extractSubPages: LinkExtractor): Promise { const uri = new URL(chapter.Identifier, this.URI); - let request = new FetchRequest(uri.href); + let request = new Request(uri.href); //using FetchWindowCSS because TAADD websites have a tendency to redirect to another site for chapters page const data = await FetchWindowCSS(request, queryPages_arg); //Here we got the sub pages list NODES //There may be MORE than one page list element on the page, we need only one ! @@ -119,7 +119,7 @@ export async function FetchPagesMultiPagesCSS(this: MangaScraper, chapter: Chapt const pagelist: Page[] = []; for (const subpage of subpages) { - request = new FetchRequest(subpage); + request = new Request(subpage); const imgdata = await FetchCSS(request, queryImages_arg); imgdata.map(element => { const picUrl = element.src; From 8b250df3804877a9718c7222643a0eacb0588df5 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Mon, 26 Feb 2024 16:16:34 +0100 Subject: [PATCH 20/45] Update _index.ts --- web/src/engine/websites/_index.ts | 122 +++++++++++++++++++++++------- 1 file changed, 96 insertions(+), 26 deletions(-) diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index adc7850b21..1ca5956126 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -1,12 +1,13 @@ // Implemented Websites export { default as AdonisFansub } from './AdonisFansub'; export { default as AGCScanlation } from './AGCScanlation'; +export { default as AGS } from './AGS'; export { default as Ainzscans } from './Ainzscans'; -export { default as AkuManga } from './AkuManga'; export { default as Alceascan } from './Alceascan'; export { default as AlliedFansub } from './AlliedFansub'; export { default as AllPornComic } from './AllPornComic'; export { default as Alphapolis } from './Alphapolis'; +export { default as AmuyScan } from './AmuyScan'; export { default as AnataNoMotokare } from './AnataNoMotokare'; export { default as AniGliScans } from './AniGliScans'; export { default as Anikiga } from './Anikiga'; @@ -16,20 +17,22 @@ export { default as AnshScans } from './AnshScans'; export { default as AnzManga } from './AnzManga'; export { default as ApollComics } from './ApollComics'; export { default as AquaManga } from './AquaManga'; +export { default as ArabToons } from './ArabToons'; export { default as ArcaneScans } from './ArcaneScans'; +export { default as ArcRelight } from './ArcRelight'; +export { default as ArcuraFansub } from './ArcuraFansub'; export { default as AresManga } from './AresManga'; export { default as ArgosScan } from './ArgosScan'; export { default as ArthurScan } from './ArthurScan'; export { default as Ascalon } from './Ascalon'; export { default as AsmHentai } from './AsmHentai'; -export { default as AssortedScans } from './AssortedScans'; export { default as AstralManga } from './AstralManga'; +export { default as AstraScans } from './AstraScans'; export { default as AsuraScans } from './AsuraScans'; export { default as AsuraScansTR } from './AsuraScansTR'; export { default as Atikrost } from './Atikrost'; export { default as AyaToon } from './AyaToon'; export { default as AzoraWorld } from './AzoraWorld'; -export { default as AzureManga } from './AzureManga'; export { default as BacaKomik } from './BacaKomik'; export { default as BacaManga } from './BacaManga'; export { default as BakaMan } from './BakaMan'; @@ -41,14 +44,15 @@ export { default as BlogTruyen } from './BlogTruyen'; export { default as Bokugents } from './Bokugents'; export { default as Boosei } from './Boosei'; export { default as BoysLove } from './BoysLove'; +export { default as CartelDeManhwas } from './CartelDeManhwas'; export { default as CarToonMad } from './CarToonMad'; export { default as CatTranslator } from './CatTranslator'; export { default as CeriseScans } from './CeriseScans'; -export { default as ChibiManga } from './ChibiManga'; export { default as CloverManga } from './CloverManga'; export { default as Cocorip } from './Cocorip'; export { default as CoffeeManga } from './CoffeeManga'; export { default as ColoredManga } from './ColoredManga'; +export { default as Comic21 } from './Comic21'; export { default as ComicAction } from './ComicAction'; export { default as ComicBorder } from './ComicBorder'; export { default as ComicDays } from './ComicDays'; @@ -60,10 +64,10 @@ export { default as ComicGardo } from './ComicGardo'; export { default as ComicGrowl } from './ComicGrowl'; export { default as ComicK } from './ComicK'; export { default as Comico } from './Comico'; +export { default as ComicOnlineFree } from './ComicOnlineFree'; export { default as ComicRyu } from './ComicRyu'; export { default as ComicsValley } from './ComicsValley'; export { default as ComicTrail } from './ComicTrail'; -export { default as ComicWalker } from './ComicWalker'; export { default as ComicZenon } from './ComicZenon'; export { default as ComicZerosum } from './ComicZerosum'; export { default as Comikey } from './Comikey'; @@ -71,6 +75,7 @@ export { default as ComikeyArchive } from './ComikeyArchive'; export { default as ConstellarScans } from './ConstellarScans'; export { default as CopyManga } from './CopyManga'; export { default as CopyPasteScan } from './CopyPasteScan'; +export { default as CoroCoro } from './CoroCoro'; export { default as CosmicScans } from './CosmicScans'; export { default as CosmicScansID } from './CosmicScansID'; export { default as CovenScan } from './CovenScan'; @@ -78,13 +83,17 @@ export { default as CrunchyScan } from './CrunchyScan'; export { default as CyComi } from './CyComi'; export { default as CypherScans } from './CypherScans'; export { default as DankeFursLesen } from './DankeFursLesen'; +export { default as DarkScan } from './DarkScan'; +export { default as DarkScanEN } from './DarkScanEN'; export { default as Daysneo } from './Daysneo'; export { default as DeathTollScans } from './DeathTollScans'; export { default as DecadenceScans } from './DecadenceScans'; export { default as DemoneCeleste } from './DemoneCeleste'; export { default as DemonSect } from './DemonSect'; +export { default as DessertScan } from './DessertScan'; export { default as Desu } from './Desu'; export { default as DiamondFansub } from './DiamondFansub'; +export { default as DianxiaTrads } from './DianxiaTrads'; export { default as DigitalTeam } from './DigitalTeam'; export { default as DisasterScans } from './DisasterScans'; export { default as DiskusScan } from './DiskusScan'; @@ -105,12 +114,13 @@ export { default as EarlyManga } from './EarlyManga'; export { default as EightMuses } from './EightMuses'; export { default as EightMusesXXX } from './EightMusesXXX'; export { default as ElevenToon } from './ElevenToon'; +export { default as EuphoriaScan } from './EuphoriaScan'; export { default as EvilFlowers } from './EvilFlowers'; -export { default as FallenAngelsScans } from './FallenAngelsScans'; export { default as FayScans } from './FayScans'; export { default as FbSquads } from './FbSquads'; export { default as FenixScan } from './FenixScan'; export { default as FinalScans } from './FinalScans'; +export { default as FireScans } from './FireScans'; export { default as FlameComics } from './FlameComics'; export { default as FMTeam } from './FMTeam'; export { default as FoxWhiteScan } from './FoxWhiteScan'; @@ -120,6 +130,7 @@ export { default as FreeComicOnline } from './FreeComicOnline'; export { default as FreeManga } from './FreeManga'; export { default as FreeWebtoonCoins } from './FreeWebtoonCoins'; export { default as FRScan } from './FRScan'; +export { default as FRTiretScan } from './FRTiretScan'; export { default as FunManga } from './FunManga'; export { default as FuryoSquad } from './FuryoSquad'; export { default as Futari } from './Futari'; @@ -144,6 +155,7 @@ export { default as GuruKomik } from './GuruKomik'; export { default as Hachirumi } from './Hachirumi'; export { default as HadesNoFansub } from './HadesNoFansub'; export { default as HamTruyen } from './HamTruyen'; +export { default as Hanman18 } from './Hanman18'; export { default as HarmonyScan } from './HarmonyScan'; export { default as HastaTeam } from './HastaTeam'; export { default as HastaTeamDDT } from './HastaTeamDDT'; @@ -152,6 +164,7 @@ export { default as HeavenManga2 } from './HeavenManga2'; export { default as HenChan } from './HenChan'; export { default as Hentai2Read } from './Hentai2Read'; export { default as Hentai3z } from './Hentai3z'; +export { default as Hentai20 } from './Hentai20'; export { default as Hentaidexy } from './Hentaidexy'; export { default as HentaiFox } from './HentaiFox'; export { default as HentaiHand } from './HentaiHand'; @@ -165,13 +178,18 @@ export { default as Hinapyon } from './Hinapyon'; export { default as HiperCool } from './HiperCool'; export { default as Hiperdex } from './Hiperdex'; export { default as HniScanTrad } from './HniScanTrad'; +export { default as HoiFansub } from './HoiFansub'; +export { default as HouseMangas } from './HouseMangas'; export { default as HqNow } from './HqNow'; export { default as HunterScan } from './HunterScan'; export { default as HunterScanEN } from './HunterScanEN'; +export { default as HwagoID } from './HwagoID'; export { default as IceKr } from './IceKr'; +export { default as Ikanmh } from './Ikanmh'; +export { default as IllusionScan } from './IllusionScan'; export { default as IMHentai } from './IMHentai'; export { default as ImmortalUpdates } from './ImmortalUpdates'; -export { default as ImperioScans } from './ImperioScans'; +export { default as InariManga } from './InariManga'; export { default as InfraFandub } from './InfraFandub'; export { default as InManga } from './InManga'; export { default as InmortalScan } from './InmortalScan'; @@ -182,8 +200,8 @@ export { default as IsekaiScan } from './IsekaiScan'; export { default as ItsYourRightManhua } from './ItsYourRightManhua'; export { default as JapScan } from './JapScan'; export { default as JiangzaiToon } from './JiangzaiToon'; -export { default as Jmana1 } from './Jmana1'; export { default as Jpmangas } from './Jpmangas'; +export { default as KadoComi } from './KadoComi'; export { default as KaiScans } from './KaiScans'; export { default as Kakaopage } from './Kakaopage'; export { default as Kanjiku } from './Kanjiku'; @@ -214,39 +232,49 @@ export { default as kuimh } from './kuimh'; export { default as KumoTran } from './KumoTran'; export { default as KurageBunch } from './KurageBunch'; export { default as LamiManga } from './LamiManga'; +export { default as LaviniaFansub } from './LaviniaFansub'; +export { default as LectorUnitoon } from './LectorUnitoon'; export { default as LeerCapitulo } from './LeerCapitulo'; export { default as LegacyScans } from './LegacyScans'; export { default as Leitor } from './Leitor'; export { default as LELManga } from './LELManga'; export { default as LELScan } from './LELScan'; export { default as LELScanVF } from './LELScanVF'; +export { default as LerManga } from './LerManga'; export { default as LerYaoi } from './LerYaoi'; export { default as LeviatanScans } from './LeviatanScans'; export { default as LewdManhwa } from './LewdManhwa'; export { default as LHTranslation } from './LHTranslation'; export { default as LianScans } from './LianScans'; +export { default as LightScans } from './LightScans'; export { default as LikeManga } from './LikeManga'; export { default as LilyManga } from './LilyManga'; export { default as LimaScans } from './LimaScans'; export { default as LireScan } from './LireScan'; export { default as LittleGarden } from './LittleGarden'; +export { default as LowerWorld } from './LowerWorld'; export { default as LSHiver } from './LSHiver'; export { default as LuminousScans } from './LuminousScans'; export { default as LunarScans } from './LunarScans'; +export { default as LunarScansFR } from './LunarScansFR'; export { default as LupiTeam } from './LupiTeam'; +export { default as LuraToon } from './LuraToon'; export { default as Luscious } from './Luscious'; export { default as LynxScans } from './LynxScans'; export { default as MadaraDex } from './MadaraDex'; export { default as MagComi } from './MagComi'; export { default as MagicalTranslators } from './MagicalTranslators'; +export { default as MagKan } from './MagKan'; export { default as MaID } from './MaID'; +export { default as MajorScans } from './MajorScans'; export { default as Manga3S } from './Manga3S'; export { default as Manga18FX } from './Manga18FX'; export { default as Manga68 } from './Manga68'; +export { default as Manga168 } from './Manga168'; export { default as Manga347 } from './Manga347'; -export { default as Manga365 } from './Manga365'; export { default as Manga1001top } from './Manga1001top'; export { default as MangaAction } from './MangaAction'; +export { default as MangaArab } from './MangaArab'; export { default as MangaAy } from './MangaAy'; export { default as MangaBat } from './MangaBat'; export { default as Mangabaz } from './Mangabaz'; @@ -261,29 +289,40 @@ export { default as MangaClash } from './MangaClash'; export { default as MangaCrab } from './MangaCrab'; export { default as MangaCross } from './MangaCross'; export { default as MangaCultivator } from './MangaCultivator'; +export { default as MangaDemon } from './MangaDemon'; export { default as MangaDenizi } from './MangaDenizi'; export { default as MangaDex } from './MangaDex'; +export { default as MangaDistrict } from './MangaDistrict'; export { default as MangaDiyari } from './MangaDiyari'; +export { default as Mangadon } from './Mangadon'; export { default as MangaDoom } from './MangaDoom'; export { default as MangaDoor } from './MangaDoor'; export { default as MangaEclipse } from './MangaEclipse'; +export { default as MangaEfendisi } from './MangaEfendisi'; export { default as MangaEffect } from './MangaEffect'; export { default as MangaEighteenClub } from './MangaEighteenClub'; export { default as MangaEighteenUS } from './MangaEighteenUS'; +export { default as MangaFire } from './MangaFire'; +export { default as MangaFlame } from './MangaFlame'; export { default as MangaForest } from './MangaForest'; export { default as MangaForFree } from './MangaForFree'; export { default as MangaFort } from './MangaFort'; export { default as MangaFox } from './MangaFox'; export { default as MangaFoxFull } from './MangaFoxFull'; +export { default as MangaFreak } from './MangaFreak'; export { default as MangaGecko } from './MangaGecko'; +export { default as MangaGezgini } from './MangaGezgini'; export { default as MangaGG } from './MangaGG'; +export { default as MangaHack } from './MangaHack'; export { default as MangaHasu } from './MangaHasu'; export { default as MangaHentai } from './MangaHentai'; export { default as MangaHere } from './MangaHere'; +export { default as MangaHubFR } from './MangaHubFR'; export { default as MangaHubRU } from './MangaHubRU'; export { default as MangaID } from './MangaID'; export { default as MangaInn } from './MangaInn'; export { default as MangaIro } from './MangaIro'; +export { default as MangaItalia } from './MangaItalia'; export { default as MangaJar } from './MangaJar'; export { default as Mangajp } from './Mangajp'; export { default as MangaKakalot } from './MangaKakalot'; @@ -322,17 +361,21 @@ export { default as MangaRolls } from './MangaRolls'; export { default as MangaRomance } from './MangaRomance'; export { default as MangaRose } from './MangaRose'; export { default as MangaRussia } from './MangaRussia'; +export { default as MangAs } from './MangAs'; export { default as MangaSail } from './MangaSail'; export { default as MangaScantrad } from './MangaScantrad'; export { default as MangasChan } from './MangasChan'; export { default as MangaSect } from './MangaSect'; export { default as MangaSee } from './MangaSee'; export { default as MangaSehri } from './MangaSehri'; +export { default as MangaSehriNet } from './MangaSehriNet'; +export { default as MangaShip } from './MangaShip'; export { default as MangaShiro } from './MangaShiro'; export { default as MangasOrigines } from './MangasOrigines'; export { default as MangaSpark } from './MangaSpark'; export { default as MangaStarz } from './MangaStarz'; export { default as MangaSushi } from './MangaSushi'; +export { default as MangaSusuku } from './MangaSusuku'; export { default as MangaSY } from './MangaSY'; export { default as MangaTale } from './MangaTale'; export { default as Mangatellers } from './Mangatellers'; @@ -340,14 +383,15 @@ export { default as MangaTepesi } from './MangaTepesi'; export { default as MangaTitan } from './MangaTitan'; export { default as MangaTown } from './MangaTown'; export { default as MangaTube } from './MangaTube'; -export { default as MangaTX } from './MangaTX'; export { default as MangaWeebs } from './MangaWeebs'; export { default as MangaWindow } from './MangaWindow'; export { default as MangaWorld } from './MangaWorld'; +export { default as MangaWorldAdult } from './MangaWorldAdult'; export { default as MangaWOW } from './MangaWOW'; export { default as MangaWT } from './MangaWT'; export { default as MangaYeh } from './MangaYeh'; export { default as Mangaz } from './Mangaz'; +export { default as Mangazure } from './Mangazure'; export { default as ManHatic } from './ManHatic'; export { default as ManhuaAZ } from './ManhuaAZ'; export { default as ManHuaDex } from './ManHuaDex'; @@ -355,10 +399,13 @@ export { default as ManhuaFast } from './ManhuaFast'; export { default as Manhuaga } from './Manhuaga'; export { default as ManhuaGold } from './ManhuaGold'; export { default as ManHuaGui } from './ManHuaGui'; +export { default as ManhuaHot } from './ManhuaHot'; export { default as ManhuaMix } from './ManhuaMix'; export { default as ManhuaPlus } from './ManhuaPlus'; +export { default as Manhuaren } from './Manhuaren'; export { default as ManhuaScan } from './ManhuaScan'; export { default as Manhuass } from './Manhuass'; +export { default as ManhuaSY } from './ManhuaSY'; export { default as ManhuaUs } from './ManhuaUs'; export { default as Manhwa18 } from './Manhwa18'; export { default as Manhwa18cc } from './Manhwa18cc'; @@ -374,6 +421,7 @@ export { default as Manhwaland } from './Manhwaland'; export { default as ManhwaLatino } from './ManhwaLatino'; export { default as ManhwaList } from './ManhwaList'; export { default as ManhwaRaw } from './ManhwaRaw'; +export { default as ManhwasMen } from './ManhwasMen'; export { default as ManhwasNet } from './ManhwasNet'; export { default as ManhwaTop } from './ManhwaTop'; export { default as ManhwaWorld } from './ManhwaWorld'; @@ -386,8 +434,12 @@ export { default as ManyToonCOM } from './ManyToonCOM'; export { default as ManyToonKR } from './ManyToonKR'; export { default as MaviManga } from './MaviManga'; export { default as MenudoFansub } from './MenudoFansub'; +export { default as MeowSubs } from './MeowSubs'; +export { default as MerlinScans } from './MerlinScans'; export { default as Mexat } from './Mexat'; export { default as Mgkomik } from './Mgkomik'; +export { default as MHScans } from './MHScans'; +export { default as Mi2mangaES } from './Mi2mangaES'; export { default as Migudm } from './Migudm'; export { default as MilfToon } from './MilfToon'; export { default as MindaFanSub } from './MindaFanSub'; @@ -399,11 +451,15 @@ export { default as MomoNoHanaScan } from './MomoNoHanaScan'; export { default as MonochromeScans } from './MonochromeScans'; export { default as MonoManga } from './MonoManga'; export { default as MoonWitchInLove } from './MoonWitchInLove'; +export { default as MrYaoi } from './MrYaoi'; export { default as MundoManhwa } from './MundoManhwa'; export { default as NatsuID } from './NatsuID'; export { default as Nekomik } from './Nekomik'; export { default as NeoxScan } from './NeoxScan'; +export { default as Neroxus } from './Neroxus'; +export { default as NetComics } from './NetComics'; export { default as NeuManga } from './NeuManga'; +export { default as NewManhua } from './NewManhua'; export { default as NewType } from './NewType'; export { default as NextScan } from './NextScan'; export { default as Ngomik } from './Ngomik'; @@ -423,10 +479,12 @@ export { default as NineMangaRU } from './NineMangaRU'; export { default as NirvanaManga } from './NirvanaManga'; export { default as NitroManga } from './NitroManga'; export { default as NiveraFansub } from './NiveraFansub'; -export { default as Nonbiri } from './Nonbiri'; +export { default as NocturneSummer } from './NocturneSummer'; export { default as NoraNoFansub } from './NoraNoFansub'; export { default as Noromax } from './Noromax'; export { default as NovelMic } from './NovelMic'; +export { default as NvManga } from './NvManga'; +export { default as Nyrax } from './Nyrax'; export { default as OlympusScanlation } from './OlympusScanlation'; export { default as OnMangaMe } from './OnMangaMe'; export { default as Opiatoon } from './Opiatoon'; @@ -445,27 +503,29 @@ export { default as Piccoma } from './Piccoma'; export { default as PiccomaFR } from './PiccomaFR'; export { default as PiedPiper } from './PiedPiper'; export { default as PijamaliKoi } from './PijamaliKoi'; +export { default as PinkSeaUnicorn } from './PinkSeaUnicorn'; export { default as PixivComics } from './PixivComics'; export { default as PlatinumScans } from './PlatinumScans'; +export { default as PocketComics } from './PocketComics'; export { default as PojokManga } from './PojokManga'; export { default as PornComix } from './PornComix'; export { default as PornComixOnline } from './PornComixOnline'; -export { default as PowerManga } from './PowerManga'; +export { default as PortalYaoi } from './PortalYaoi'; export { default as PrismaHentai } from './PrismaHentai'; -export { default as ProjetoScanlator } from './ProjetoScanlator'; export { default as Pururin } from './Pururin'; export { default as Pzykosis666HFansub } from './Pzykosis666HFansub'; export { default as QuantumScans } from './QuantumScans'; export { default as Rackus } from './Rackus'; export { default as RagnarokScan } from './RagnarokScan'; +export { default as RaijinScans } from './RaijinScans'; export { default as RaikiScan } from './RaikiScan'; export { default as RainDropFansub } from './RainDropFansub'; -export { default as RandomScan } from './RandomScan'; export { default as RavensScansEN } from './RavensScansEN'; export { default as RavensScansES } from './RavensScansES'; export { default as RawDevart } from './RawDevart'; export { default as Rawkuma } from './Rawkuma'; export { default as RawSenManga } from './RawSenManga'; +export { default as RawXZ } from './RawXZ'; export { default as ReadComicOnline } from './ReadComicOnline'; export { default as ReadComicsOnline } from './ReadComicsOnline'; export { default as ReadFreeComics } from './ReadFreeComics'; @@ -482,15 +542,18 @@ export { default as Remangas } from './Remangas'; export { default as ResetScans } from './ResetScans'; export { default as Retsu } from './Retsu'; export { default as RidiBooks } from './RidiBooks'; -export { default as RightDarkScan } from './RightDarkScan'; export { default as Rio2Manga } from './Rio2Manga'; export { default as RizzComics } from './RizzComics'; +export { default as RobinManga } from './RobinManga'; export { default as RomantikManga } from './RomantikManga'; +export { default as RuyaManga } from './RuyaManga'; export { default as S2Manga } from './S2Manga'; export { default as Sadscans } from './Sadscans'; export { default as SamuraiScan } from './SamuraiScan'; +export { default as SarcasmScans } from './SarcasmScans'; export { default as ScamberTraslator } from './ScamberTraslator'; export { default as ScanFR } from './ScanFR'; +export { default as ScanHentaiMenu } from './ScanHentaiMenu'; export { default as ScansMangasme } from './ScansMangasme'; export { default as ScantradUnion } from './ScantradUnion'; export { default as ScanVF } from './ScanVF'; @@ -512,6 +575,7 @@ export { default as Shakai } from './Shakai'; export { default as SheaKomik } from './SheaKomik'; export { default as SheepManga } from './SheepManga'; export { default as SheepMangaBroken } from './SheepMangaBroken'; +export { default as ShijieScans } from './ShijieScans'; export { default as ShinigamiID } from './ShinigamiID'; export { default as Shirakami } from './Shirakami'; export { default as ShonenJumpPlus } from './ShonenJumpPlus'; @@ -524,11 +588,15 @@ export { default as SilenceScan } from './SilenceScan'; export { default as SilentSkyScans } from './SilentSkyScans'; export { default as SinensisScan } from './SinensisScan'; export { default as SirenKomik } from './SirenKomik'; +export { default as SixParkbbsClub } from './SixParkbbsClub'; +export { default as SixParkbbsWeb } from './SixParkbbsWeb'; export { default as Siyahmelek } from './Siyahmelek'; export { default as SkyMangas } from './SkyMangas'; export { default as SMangaVF } from './SMangaVF'; export { default as SoftKomik } from './SoftKomik'; export { default as SoulScans } from './SoulScans'; +export { default as SSSScanlator } from './SSSScanlator'; +export { default as StellarSaber } from './StellarSaber'; export { default as StickHorse } from './StickHorse'; export { default as Submanga } from './Submanga'; export { default as SugarLab } from './SugarLab'; @@ -540,6 +608,7 @@ export { default as SushiScans } from './SushiScans'; export { default as SweetTimeScan } from './SweetTimeScan'; export { default as TAADD } from './TAADD'; export { default as Tapread } from './Tapread'; +export { default as TarotScans } from './TarotScans'; export { default as TatakaeScan } from './TatakaeScan'; export { default as TCBScans } from './TCBScans'; export { default as Team1x1 } from './Team1x1'; @@ -548,6 +617,7 @@ export { default as Tempestfansub } from './Tempestfansub'; export { default as TempestScans } from './TempestScans'; export { default as TenManga } from './TenManga'; export { default as TenshiID } from './TenshiID'; +export { default as TheBlank } from './TheBlank'; export { default as TheGuildScans } from './TheGuildScans'; export { default as TitanManga } from './TitanManga'; export { default as TmoManga } from './TmoManga'; @@ -562,8 +632,10 @@ export { default as TopManhuaNet } from './TopManhuaNet'; export { default as TopToon } from './TopToon'; export { default as TortugaCeviri } from './TortugaCeviri'; export { default as TraduccionesAmistosas } from './TraduccionesAmistosas'; +export { default as TraduccionesMoonlight } from './TraduccionesMoonlight'; export { default as TritiniaScans } from './TritiniaScans'; export { default as TrueManga } from './TrueManga'; +export { default as TruyenTranhDammy } from './TruyenTranhDammy'; export { default as TruyenTranhOnline } from './TruyenTranhOnline'; export { default as TruyenTranhtuan } from './TruyenTranhtuan'; export { default as TRWebtoon } from './TRWebtoon'; @@ -572,18 +644,22 @@ export { default as TukangKomik } from './TukangKomik'; export { default as TuMangaNet } from './TuMangaNet'; export { default as TuMangaOnlineHentai } from './TuMangaOnlineHentai'; export { default as TuManhwas } from './TuManhwas'; +export { default as TurkceMangaOku } from './TurkceMangaOku'; export { default as Turktoon } from './Turktoon'; +export { default as Tuttoanimemanga } from './Tuttoanimemanga'; +export { default as UmeTruyen } from './UmeTruyen'; export { default as UraSunday } from './UraSunday'; export { default as UzayManga } from './UzayManga'; +export { default as ValkyrieScan } from './ValkyrieScan'; export { default as VerManhwa } from './VerManhwa'; export { default as ViewComics } from './ViewComics'; export { default as ViyaFansub } from './ViyaFansub'; export { default as VNSharing } from './VNSharing'; export { default as VoidScans } from './VoidScans'; -export { default as WantedTeam } from './WantedTeam'; export { default as WarungKomik } from './WarungKomik'; export { default as WebAce } from './WebAce'; export { default as WebComicsApp } from './WebComicsApp'; +export { default as WebDexScans } from './WebDexScans'; export { default as WebNovel } from './WebNovel'; export { default as WebtoonHatti } from './WebtoonHatti'; export { default as WebtoonTR } from './WebtoonTR'; @@ -597,6 +673,7 @@ export { default as WinterScan } from './WinterScan'; export { default as Wnacg } from './Wnacg'; export { default as WonderlandWebtoons } from './WonderlandWebtoons'; export { default as WordHero } from './WordHero'; +export { default as WorldManhwas } from './WorldManhwas'; export { default as XCaliBRScans } from './XCaliBRScans'; export { default as xianman123 } from './xianman123'; export { default as XlecX } from './XlecX'; @@ -607,10 +684,12 @@ export { default as YaoiChan } from './YaoiChan'; export { default as YaoiHavenReborn } from './YaoiHavenReborn'; export { default as YaoiScan } from './YaoiScan'; export { default as YaoiToshokan } from './YaoiToshokan'; +export { default as YaoiTR } from './YaoiTR'; export { default as YawarakaSpirits } from './YawarakaSpirits'; -export { default as YugenMangasES } from './YugenMangasES'; +export { default as Ynjn } from './Ynjn'; export { default as YugenMangasPT } from './YugenMangasPT'; export { default as YumeKomik } from './YumeKomik'; +export { default as Yurineko } from './Yurineko'; export { default as YuriVerso } from './YuriVerso'; export { default as Zebrack } from './Zebrack'; export { default as ZeroScans } from './ZeroScans'; @@ -625,7 +704,6 @@ export { default as AnimePahe } from './legacy/AnimePahe'; export { default as AnimExtremist } from './legacy/AnimExtremist'; export { default as Aniwave } from './legacy/Aniwave'; export { default as ArazNovel } from './legacy/ArazNovel'; -export { default as AstralLibrary } from './legacy/AstralLibrary'; export { default as Baozimh } from './legacy/Baozimh'; export { default as BilibiliComics } from './legacy/BilibiliComics'; export { default as BilibiliManhua } from './legacy/BilibiliManhua'; @@ -679,15 +757,12 @@ export { default as LineWebtoonTH } from './legacy/LineWebtoonTH'; export { default as LineWebtoonTranslate } from './legacy/LineWebtoonTranslate'; export { default as LineWebtoonZH } from './legacy/LineWebtoonZH'; export { default as LxHentai } from './legacy/LxHentai'; -export { default as MagKan } from './legacy/MagKan'; export { default as Manatoki } from './legacy/Manatoki'; export { default as Manga3x } from './legacy/Manga3x'; export { default as Manga33 } from './legacy/Manga33'; export { default as Manga1001 } from './legacy/Manga1001'; -export { default as MangaArab } from './legacy/MangaArab'; export { default as MangaCat } from './legacy/MangaCat'; export { default as MangaFoxFun } from './legacy/MangaFoxFun'; -export { default as MangaFreak } from './legacy/MangaFreak'; export { default as MangaGo } from './legacy/MangaGo'; export { default as MangaHereFun } from './legacy/MangaHereFun'; export { default as MangaHub } from './legacy/MangaHub'; @@ -699,8 +774,6 @@ export { default as MangaPark } from './legacy/MangaPark'; export { default as MangaParkEN } from './legacy/MangaParkEN'; export { default as MangaReaderSite } from './legacy/MangaReaderSite'; export { default as MangaReaderTo } from './legacy/MangaReaderTo'; -export { default as MangAs } from './legacy/MangAs'; -export { default as MangaShip } from './legacy/MangaShip'; export { default as MangaToonCN } from './legacy/MangaToonCN'; export { default as MangaToonEN } from './legacy/MangaToonEN'; export { default as MangaToonES } from './legacy/MangaToonES'; @@ -712,7 +785,6 @@ export { default as MangaZukiRAWS } from './legacy/MangaZukiRAWS'; export { default as ManHua1359 } from './legacy/ManHua1359'; export { default as ManHuaFen } from './legacy/ManHuaFen'; export { default as ManhuaTai } from './legacy/ManhuaTai'; -export { default as ManhwasMen } from './legacy/ManhwasMen'; export { default as Manmankan } from './legacy/Manmankan'; export { default as MeioNovel } from './legacy/MeioNovel'; export { default as MintManga } from './legacy/MintManga'; @@ -749,8 +821,6 @@ export { default as ScanManga } from './legacy/ScanManga'; export { default as SelfManga } from './legacy/SelfManga'; export { default as ShinobiScans } from './legacy/ShinobiScans'; export { default as SixMH7 } from './legacy/SixMH7'; -export { default as SixParkbbsClub } from './legacy/SixParkbbsClub'; -export { default as SixParkbbsWeb } from './legacy/SixParkbbsWeb'; export { default as SleepyTranslations } from './legacy/SleepyTranslations'; export { default as SouDongMan } from './legacy/SouDongMan'; export { default as StoriaDash } from './legacy/StoriaDash'; From 923d9a114f7cca680a3ae728ce214eec9c43a610 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Sat, 9 Mar 2024 12:48:15 +0100 Subject: [PATCH 21/45] taadd minor code changes --- web/src/engine/websites/decorators/TAADD.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/web/src/engine/websites/decorators/TAADD.ts b/web/src/engine/websites/decorators/TAADD.ts index 82223146e1..24e74ca21c 100644 --- a/web/src/engine/websites/decorators/TAADD.ts +++ b/web/src/engine/websites/decorators/TAADD.ts @@ -2,8 +2,7 @@ import { type MangaScraper, type Manga, Chapter, Page } from '../../providers/MangaPlugin'; import * as Common from './Common'; export function MangaLabelExtractor(element: HTMLElement) { - const title = ((element as HTMLMetaElement).content || element.textContent).replace(/(^\s*[Мм]анга|[Mm]anga\s*$)/, '').trim(); - return title ; + return ((element as HTMLMetaElement).content || element.textContent).replace(/(^\s*[Мм]анга|[Mm]anga\s*$)/, '').trim(); } type LinkExtractor = (this: MangaScraper, element: HTMLElement) => string; @@ -64,8 +63,7 @@ async function FetchChaptersSinglePageCSS(this: MangaScraper, manga: Manga, quer url.searchParams.set('waring', '1'); //NineManga typo } - const request = new Request(url.href); - const data = await FetchCSS(request, query); + const data = await FetchCSS(new Request(url), query); return data.map(element => { const { id, title } = extractor.call(this, element); const mangaTitle = manga.Title.replace(/[*^.|$?+\-()[\]{}\\/]/g, '\\$&'); //escape special regex chars in manga name @@ -105,21 +103,19 @@ export function ChaptersSinglePageCSS(query: string = queryChapters, extractor = * @param this - A reference to the {@link MangaScraper} instance which will be used as context for this method * @param chapter - A reference to the {@link Chapter} which shall be assigned as parent for the extracted pages * @param queryPages_arg - A CSS selector to the element containing all subpages : Typically a element - * @param querySubPages_arg - A CSS query to match all elements from {@link queryPages_arg}. Ie. '