From 6e57ef23a195f5ab0eafbec17e439bda4a278679 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Fri, 29 Nov 2024 16:34:07 +0000 Subject: [PATCH] friday maintenance (#910) --- web/src/engine/websites/GuFengMH8.ts | 2 +- web/src/engine/websites/GuFengMH8_e2e.ts | 2 +- web/src/engine/websites/KlikManga.ts | 2 +- web/src/engine/websites/KlikManga_e2e.ts | 2 +- web/src/engine/websites/KolNovel.ts | 2 +- web/src/engine/websites/KolNovel_e2e.ts | 2 +- web/src/engine/websites/MangaSwat.ts | 2 +- web/src/engine/websites/MangaSwat_e2e.ts | 2 +- web/src/engine/websites/Mangaz.ts | 98 -------------------- web/src/engine/websites/Mangaz.webp | Bin 1358 -> 0 bytes web/src/engine/websites/Mangaz_e2e.ts | 24 ----- web/src/engine/websites/Mi2mangaES.ts | 2 +- web/src/engine/websites/Mi2mangaES_e2e.ts | 4 +- web/src/engine/websites/SeiManga.ts | 2 +- web/src/engine/websites/SeiManga_e2e.ts | 2 +- web/src/engine/websites/WordHero.ts | 38 -------- web/src/engine/websites/WordHero.webp | Bin 884 -> 0 bytes web/src/engine/websites/WordHero_e2e.ts | 24 ----- web/src/engine/websites/WorldManhwas.ts | 21 ----- web/src/engine/websites/WorldManhwas.webp | Bin 1830 -> 0 bytes web/src/engine/websites/WorldManhwas_e2e.ts | 24 ----- web/src/engine/websites/XManhwa.ts | 2 +- web/src/engine/websites/XManhwa_e2e.ts | 10 +- web/src/engine/websites/_index.ts | 3 - 24 files changed, 19 insertions(+), 251 deletions(-) delete mode 100644 web/src/engine/websites/Mangaz.ts delete mode 100644 web/src/engine/websites/Mangaz.webp delete mode 100644 web/src/engine/websites/Mangaz_e2e.ts delete mode 100644 web/src/engine/websites/WordHero.ts delete mode 100644 web/src/engine/websites/WordHero.webp delete mode 100644 web/src/engine/websites/WordHero_e2e.ts delete mode 100644 web/src/engine/websites/WorldManhwas.ts delete mode 100644 web/src/engine/websites/WorldManhwas.webp delete mode 100644 web/src/engine/websites/WorldManhwas_e2e.ts diff --git a/web/src/engine/websites/GuFengMH8.ts b/web/src/engine/websites/GuFengMH8.ts index af0790171f..3f8b48f829 100644 --- a/web/src/engine/websites/GuFengMH8.ts +++ b/web/src/engine/websites/GuFengMH8.ts @@ -12,7 +12,7 @@ import * as SinMH from './decorators/SinMH'; export default class extends DecoratableMangaScraper { public constructor() { - super('gufengmh8', `古风漫画网 (GuFengMH8)`, 'https://www.gufengmh9.com', Tags.Language.Chinese, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); + super('gufengmh8', `古风漫画网 (GuFengMH8)`, 'https://www.gufengmh.com', Tags.Language.Chinese, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } public override get Icon() { diff --git a/web/src/engine/websites/GuFengMH8_e2e.ts b/web/src/engine/websites/GuFengMH8_e2e.ts index 62dc51b2a8..5d6b6de933 100644 --- a/web/src/engine/websites/GuFengMH8_e2e.ts +++ b/web/src/engine/websites/GuFengMH8_e2e.ts @@ -6,7 +6,7 @@ const config = { title: '古风漫画网 (GuFengMH8)' }, container: { - url: 'https://www.gufengmh9.com/manhua/moshifanren/', + url: 'https://www.gufengmh.com/manhua/moshifanren/', id: '/manhua/moshifanren/', title: '末世凡人' }, diff --git a/web/src/engine/websites/KlikManga.ts b/web/src/engine/websites/KlikManga.ts index 77ac7b92d4..4d24ebd64a 100755 --- a/web/src/engine/websites/KlikManga.ts +++ b/web/src/engine/websites/KlikManga.ts @@ -12,7 +12,7 @@ import * as Common from './decorators/Common'; export default class extends DecoratableMangaScraper { public constructor() { - super('klikmanga', 'KlikManga', 'https://klikmanga.id', Tags.Media.Manga, Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.Indonesian); + super('klikmanga', 'KlikManga', 'https://klikmanga.com', Tags.Media.Manga, Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.Indonesian); } public override get Icon() { diff --git a/web/src/engine/websites/KlikManga_e2e.ts b/web/src/engine/websites/KlikManga_e2e.ts index 33e3ca42f7..25c4b845ff 100755 --- a/web/src/engine/websites/KlikManga_e2e.ts +++ b/web/src/engine/websites/KlikManga_e2e.ts @@ -6,7 +6,7 @@ const config = { title: 'KlikManga' }, container: { - url: 'https://klikmanga.id/manga/yuusha-yamemasu/', + url: 'https://klikmanga.com/manga/yuusha-yamemasu/', id: JSON.stringify({ post: '1851', slug: '/manga/yuusha-yamemasu/' }), title: 'Yuusha, Yamemasu' }, diff --git a/web/src/engine/websites/KolNovel.ts b/web/src/engine/websites/KolNovel.ts index ea242f8bbd..dcd479f06f 100644 --- a/web/src/engine/websites/KolNovel.ts +++ b/web/src/engine/websites/KolNovel.ts @@ -14,7 +14,7 @@ import * as Common from './decorators/Common'; export default class extends DecoratableMangaScraper { public constructor() { - super('kolnovel', 'Kol Novel (ملوك الروايات)', 'https://kolnovel.online', Tags.Media.Manga, Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Media.Novel, Tags.Language.Arabic, Tags.Source.Aggregator); + super('kolnovel', 'Kol Novel (ملوك الروايات)', 'https://kolnovel.com', Tags.Media.Manga, Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Media.Novel, Tags.Language.Arabic, Tags.Source.Aggregator); } public override get Icon() { diff --git a/web/src/engine/websites/KolNovel_e2e.ts b/web/src/engine/websites/KolNovel_e2e.ts index 475ef8c59e..5ccf56ec32 100644 --- a/web/src/engine/websites/KolNovel_e2e.ts +++ b/web/src/engine/websites/KolNovel_e2e.ts @@ -6,7 +6,7 @@ const config: Config = { title: 'Kol Novel (ملوك الروايات)' }/*, container: { - url: 'https://kolnovel.online/manga/.../', + url: 'https://kolnovel.com/manga/.../', id: '/manga/.../', title: 'Manga ?' }, diff --git a/web/src/engine/websites/MangaSwat.ts b/web/src/engine/websites/MangaSwat.ts index 136aad9ba0..a675330153 100644 --- a/web/src/engine/websites/MangaSwat.ts +++ b/web/src/engine/websites/MangaSwat.ts @@ -12,7 +12,7 @@ import * as Common from './decorators/Common'; export default class extends DecoratableMangaScraper { public constructor() { - super('mangaswat', 'MangaSwat', 'https://healteer.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.Arabic, Tags.Source.Aggregator); + super('mangaswat', 'MangaSwat', 'https://swatscans.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.Arabic, Tags.Source.Aggregator); } public override get Icon() { diff --git a/web/src/engine/websites/MangaSwat_e2e.ts b/web/src/engine/websites/MangaSwat_e2e.ts index dbbe1c9d62..4836195350 100644 --- a/web/src/engine/websites/MangaSwat_e2e.ts +++ b/web/src/engine/websites/MangaSwat_e2e.ts @@ -6,7 +6,7 @@ const config: Config = { title: 'MangaSwat' }, /* CloudFlare container: { - url: 'https://healteer.com/manga/emperor-and-the-female-knight', + url: 'https://swatscans.com/manga/emperor-and-the-female-knight', id: '/manga/emperor-and-the-female-knight', title: 'Emperor And The Female Knight' }, diff --git a/web/src/engine/websites/Mangaz.ts b/web/src/engine/websites/Mangaz.ts deleted file mode 100644 index 3ab21a7598..0000000000 --- a/web/src/engine/websites/Mangaz.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Tags } from '../Tags'; -import icon from './Mangaz.webp'; -import { Chapter, DecoratableMangaScraper, Manga, Page, type MangaPlugin } from '../providers/MangaPlugin'; -import { FetchCSS, FetchWindowScript } from '../platform/FetchProvider'; -import * as Common from './decorators/Common'; -import { type Priority } from './../taskpool/TaskPool'; -import DeScramble from '../transformers/ImageDescrambler'; - -type ImagePath = { - img: string, - scrambleData: ScrambleData -} - -type ScrambleData = { - h: number, - w: number, - crops: { - h: number, - w: number, - x: number, - x2: number, - y: number, - y2: number - }[] -} - -@Common.MangaCSS(/^{origin}\/series\/detail\/\d+$/, 'li.title') -export default class extends DecoratableMangaScraper { - - public constructor() { - super('mangaz', `Manga Library Z (マンガ図書館Z)`, 'https://www.mangaz.com', Tags.Language.Japanese, Tags.Source.Official, Tags.Media.Manga); - } - - public override get Icon() { - return icon; - } - - public override async FetchMangas(provider: MangaPlugin): Promise { - const mangaList: Manga[] = []; - for (let page = 0, run = true; run; page++) { - const mangas = await this.GetMangasFromPage(page, provider); - mangas.length > 0 ? mangaList.push(...mangas) : run = false; - } - return mangaList; - } - - private async GetMangasFromPage(page: number, provider: MangaPlugin): Promise { - const request = new Request(new URL(`/title/addpage_renewal?query=&page=${page}`, this.URI), { - method: 'GET', - headers: { - 'X-Requested-With': 'XMLHttpRequest' - } - }); - const data = await FetchCSS(request, 'h4 > a'); - return data.map(element => new Manga(this, provider, element.pathname, element.text.trim())); - } - - public override async FetchChapters(manga: Manga): Promise { - const request = new Request(new URL(manga.Identifier, this.URI)); - const data = await FetchCSS(request, 'body'); - if(data[0].querySelector('li.item')) { - return [ ...data[0].querySelectorAll('li.item') ] - .map(ele => new Chapter(this, manga, ele.querySelector('button').dataset['url'].replace('navi', 'virgo/view'), ele.querySelector('span.title').textContent.trim())); - } else { - return [ new Chapter(this, manga, data[0].querySelector('button').dataset['url'].replace('navi', 'virgo/view'), manga.Title) ]; - } - } - - public override async FetchPages(chapter: Chapter): Promise { - const script = ` - new Promise(resolve => { - const jNamespace = JCOMI.namespace("JCOMI.document"); - const jDocument = jNamespace.getDoc(); - const enc = jDocument.Location.enc ? 'enc' : 'anne'; - const imgs = jNamespace.getOrders().map(ele => { - const img = jNamespace.getLocationDirAnne(enc) + ele.name + "?" + jDocument.verkey; - return { img, scrambleData : ele.scramble }; - }); - resolve(imgs); - }); - `; - const request = new Request(new URL(chapter.Identifier, this.URI)); - const data = await FetchWindowScript(request, script, 2500); - return data.map(image => new Page(this, chapter, new URL(image.img, this.URI), image.scrambleData)); - } - - public override async FetchImage(page: Page, priority: Priority, signal: AbortSignal): Promise { - const blob = await Common.FetchImageAjax.call(this, page, priority, signal); - const scrambleData = page.Parameters; - return DeScramble(blob, async (image, ctx) => { - ctx.canvas.width = scrambleData.w; - ctx.canvas.height = scrambleData.h; - for (let crop of scrambleData.crops) { - ctx.drawImage(image, crop.x2, crop.y2, crop.w, crop.h, crop.x, crop.y, crop.w, crop.h); - } - }); - } -} \ No newline at end of file diff --git a/web/src/engine/websites/Mangaz.webp b/web/src/engine/websites/Mangaz.webp deleted file mode 100644 index de5d0fe569b50c7e415922507f8e0b3c1761d141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1358 zcmV-U1+n^4Nk&FS1pok7MM6+kP&il$0000G0000#002J#06|PpNcRE&01croMD#yE z%eL(_l62ma6qKAfhx+gN4~Ch$Bf++$cN>D;-2D+T0TV#Xel1Jf`@&M#aF=BY*)Sh+ zNr4;92pd3{jGTzeV9w@@bHTWPSI98waAWI*xf3S%o=Ym1bqUUGkQE4-c@+ke!hPoj zG6zX280i8605NA0IAoP^Mi3xfhp)YuxFRXcJE2;byxICz_l@Muy}~8OIak~nBpJ4z z4c=r;*jUQKM%dcIi^doUO;UB;NU$^zXR1VGkibZ0eq%C$Ng5M=(wIa>!CiC48G|H4 zb`29L1i?&x1VLgJo*+o}lh6#Z1Yr$37CL9LkyOtd8Z5{Pc1t6PKmY>>0sw(qa9y(| zK}HLi>0}3r23g@kR%NEhjKO{Z3=Z#%`3b~)=Z?6IY9f>G{h+wEk%g}`T{qc~YX;|+ z005?e=_+)|l0Yg*FiCOGIfILp3Gf2}l4}z1O1dJ!r3at^k}Q+(qDvMWE>nz=J-fRB zj9>|uDh`5U11{QNr#Ly_!j1e!3;-ju5d79boCsztaDsUo!OR7hDh5VQa=8u&W>x|i z{I8=J7@1edFmH#s8w8kH{SJzec?n?V^*5pz7@3P008JA*`(70Yc(JQ@rU!b_gIiwyT;Z37uPT*)>^NdeprFTvkZP z3>p#VLZ||a6Tk!`I8Y!45OG=If;gAB5Sr1X>VRY+h&Y2EI3PIJ-Egwhi4=nl-5%+x zFjx}l*4)BM=Zpk&zze}|699rBuUuAjNznjF(KT4gDoI2j!ARFhQ#ELUWEkM22K&Xl zff;0pR5!BZ)=0WHRTsJ&MRH{Xm%Yg! z1>2{2>j4;ZLBZdNLmUvB7U!lfObMpFvsI`STvAwL%?5Mq&eM>-#$ot4{^KwJ>+)+G zQ&GN~hAkgnu{F53N~~^Q?|q--R?a(@R(yZ)QD(jZ6Jm3`>urh3xdtnjli;vHBTrtBwqyKYEj1J)JqHmArP9G!#s;kCFk=xx62ob(MtZwGk< z9ZA`LzRSy@mcM~KN=4U-tNrXYIhQ)t7DVZQfs4RpgV;Xe-*rDVa?MRmM#H|EEZW|f zmYsh|!f%!O=L?kY-Uk>Gg)tfSj_>n=DMtp5HyK_AKSv})G@zzX;2!3`(Zwv>crc@V z?1~M5NkM%JQm}yEtE)Xvb*lCU0gaq&(IAX0*1`Ggl&hOjg3-DRjbm1{jf__m!6vt~ zmdXaSq@0q6?cv)h7!E3%D}`5UW>`JjA^_M2Z{9lk>Y7D97g?eHo8C#fsu38p{a?XT zE5Og~ywmZVVix9weQw#DGF0=|Bs!5Z*NMxL8%t=eqgHBfx_L-x>qp`5%CEP2TlKH7 zr==VE2M@jQikiIl>wnwH2>0Bd=t)@9Hv(O{{37($KQni}WB#D(vb^ Qr82JV=;fPdsHX-10B@pS!2kdN diff --git a/web/src/engine/websites/Mangaz_e2e.ts b/web/src/engine/websites/Mangaz_e2e.ts deleted file mode 100644 index 1c7466ce47..0000000000 --- a/web/src/engine/websites/Mangaz_e2e.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { TestFixture, type Config } from '../../../test/WebsitesFixture'; - -const config: Config = { - plugin: { - id: 'mangaz', - title: 'Manga Library Z (マンガ図書館Z)' - }, - container: { - url: 'https://www.mangaz.com/series/detail/207781', - id: '/series/detail/207781', - title: '海底軍艦' - }, - child: { - id: 'https://vw.mangaz.com/virgo/view/207781/i:0', - title: '1' - }, - entry: { - index: 7, - size: 704_362, - type: 'image/png' - } -}; - -new TestFixture(config).AssertWebsite(); \ No newline at end of file diff --git a/web/src/engine/websites/Mi2mangaES.ts b/web/src/engine/websites/Mi2mangaES.ts index fb865d7c83..22558b4a2c 100644 --- a/web/src/engine/websites/Mi2mangaES.ts +++ b/web/src/engine/websites/Mi2mangaES.ts @@ -12,7 +12,7 @@ import * as Common from './decorators/Common'; export default class extends DecoratableMangaScraper { public constructor() { - super('mi2mangaes', 'Mi2mangaES', 'https://es.mi2manga.com', Tags.Media.Manhwa, Tags.Language.Spanish, Tags.Source.Aggregator); + super('mi2mangaes', 'Mi2mangaES', 'https://mi2manga.lat', Tags.Media.Manhwa, Tags.Language.Spanish, Tags.Source.Aggregator); } public override get Icon() { diff --git a/web/src/engine/websites/Mi2mangaES_e2e.ts b/web/src/engine/websites/Mi2mangaES_e2e.ts index 75f46c7913..50f687186e 100644 --- a/web/src/engine/websites/Mi2mangaES_e2e.ts +++ b/web/src/engine/websites/Mi2mangaES_e2e.ts @@ -6,8 +6,8 @@ const config = { title: 'Mi2mangaES' }, container: { - url: 'https://es.mi2manga.com/manga/la-tirana-quiere-vivir-honestamente/', - id: JSON.stringify({ slug: '/manga/la-tirana-quiere-vivir-honestamente/' }), + url: 'https://mi2manga.lat/manga/la-tirana-quiere-vivir-honestamente/', + id: JSON.stringify({ post: "2101", slug: '/manga/la-tirana-quiere-vivir-honestamente/' }), title: 'La Tirana Quiere Vivir Honestamente' }, child: { diff --git a/web/src/engine/websites/SeiManga.ts b/web/src/engine/websites/SeiManga.ts index 9962c24a4b..1b46e036b7 100644 --- a/web/src/engine/websites/SeiManga.ts +++ b/web/src/engine/websites/SeiManga.ts @@ -11,7 +11,7 @@ import * as Grouple from './decorators/Grouple'; @Grouple.ImageAjaxWithMirrors() export default class extends DecoratableMangaScraper { public constructor() { - super('seimanga', `SeiManga`, 'https://seimanga.me', Tags.Language.Russian, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); + super('seimanga', `SeiManga`, 'https://1.seimanga.me', Tags.Language.Russian, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Source.Aggregator); } public override get Icon() { diff --git a/web/src/engine/websites/SeiManga_e2e.ts b/web/src/engine/websites/SeiManga_e2e.ts index 3bee3f882b..41b493430a 100644 --- a/web/src/engine/websites/SeiManga_e2e.ts +++ b/web/src/engine/websites/SeiManga_e2e.ts @@ -6,7 +6,7 @@ const config: Config = { title: 'SeiManga' }, container: { - url: 'https://seimanga.me/sword_art_online__progressiv___skerco_glubokoi_nochi/', + url: 'https://1.seimanga.me/sword_art_online__progressiv___skerco_glubokoi_nochi/', id: '/sword_art_online__progressiv___skerco_glubokoi_nochi/', title: 'Sword Art Online: Прогрессив - Скерцо глубокой ночи', }, diff --git a/web/src/engine/websites/WordHero.ts b/web/src/engine/websites/WordHero.ts deleted file mode 100644 index 9d328d5474..0000000000 --- a/web/src/engine/websites/WordHero.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Auto-Generated export from HakuNeko Legacy -import { Tags } from '../Tags'; -import icon from './WordHero.webp'; -import { DecoratableMangaScraper } from '../providers/MangaPlugin'; -import * as MangaStream from './decorators/WordPressMangaStream'; -import * as Common from './decorators/Common'; - -@MangaStream.MangaCSS(/^https?:\/\/wordhero\.my\.id\/manga\/[^/]+\/$/) -@MangaStream.MangasSinglePageCSS() -@MangaStream.ChaptersSinglePageCSS() -@MangaStream.PagesSinglePageCSS() -@Common.ImageAjax() -export default class extends DecoratableMangaScraper { - - public constructor() { - super('wordhero', 'WordHero', 'https://www.wordhero.my.id', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Rating.Erotica); - } - - public override get Icon() { - return icon; - } -} - -// Original Source -/* -class WordHero extends WordPressMangastream { - - constructor() { - super(); - super.id = 'wordhero'; - super.label = 'WordHero'; - this.tags = [ 'webtoon', 'hentai', 'english' ]; - this.url = 'https://wordhero.my.id'; - this.path = '/manga/list-mode/'; - } - -} -*/ \ No newline at end of file diff --git a/web/src/engine/websites/WordHero.webp b/web/src/engine/websites/WordHero.webp deleted file mode 100644 index f57c49a943f52e04f1cb8453babe4140c38459c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 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 UK;2D172+1;0092^&_DnH03`u|LI3~& diff --git a/web/src/engine/websites/WorldManhwas_e2e.ts b/web/src/engine/websites/WorldManhwas_e2e.ts deleted file mode 100644 index cf264761fb..0000000000 --- a/web/src/engine/websites/WorldManhwas_e2e.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { TestFixture } from '../../../test/WebsitesFixture'; - -const config = { - plugin: { - id: 'worldmanhwas', - title: 'WorldManhwas' - }, - container: { - url: 'https://worldmanhwas.zone/komik/young-maid/', - id: JSON.stringify({ post: '2115', slug: '/komik/young-maid/' }), - title: 'Young Maid' - }, - child: { - id: '/komik/young-maid/chapter-50/', - title: 'Chapter 50' - }, - entry: { - index: 1, - size: 766_435, - type: 'image/jpeg' - } -}; - -new TestFixture(config).AssertWebsite(); \ No newline at end of file diff --git a/web/src/engine/websites/XManhwa.ts b/web/src/engine/websites/XManhwa.ts index bd721560fc..385e4ca171 100644 --- a/web/src/engine/websites/XManhwa.ts +++ b/web/src/engine/websites/XManhwa.ts @@ -12,7 +12,7 @@ import * as Common from './decorators/Common'; export default class extends DecoratableMangaScraper { public constructor() { - super('xmanhwa', 'XManhwa', 'https://www.xmanhwa.me', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Rating.Pornographic); + super('xmanhwa', 'XManhwa', 'https://www.manhwaden.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Rating.Pornographic); } public override get Icon() { diff --git a/web/src/engine/websites/XManhwa_e2e.ts b/web/src/engine/websites/XManhwa_e2e.ts index 6bdf5ae118..7090a5b481 100644 --- a/web/src/engine/websites/XManhwa_e2e.ts +++ b/web/src/engine/websites/XManhwa_e2e.ts @@ -6,17 +6,17 @@ const config = { title: 'XManhwa' }, container: { - url: 'https://www.xmanhwa.me/manga/cold-hot/', - id: JSON.stringify({ post: '25936', slug: '/manga/cold-hot/' }), - title: 'Cold? Hot!' + url: 'https://www.manhwaden.com/manga/someone-stop-her/', + id: JSON.stringify({ post: '28394', slug: '/manga/someone-stop-her/' }), + title: 'Someone Stop Her!' }, child: { - id: '/manga/cold-hot/chapter-1/', + id: '/manga/someone-stop-her/chapter-1/', title: 'Chapter 1' }, entry: { index: 0, - size: 193_651, + size: 52_837, type: 'image/jpeg' } }; diff --git a/web/src/engine/websites/_index.ts b/web/src/engine/websites/_index.ts index 07aba17b4b..2f559c26bd 100755 --- a/web/src/engine/websites/_index.ts +++ b/web/src/engine/websites/_index.ts @@ -397,7 +397,6 @@ export { default as MangaWorldAdult } from './MangaWorldAdult'; export { default as MangaWOW } from './MangaWOW'; export { default as MangaWT } from './MangaWT'; export { default as Mangayaro } from './Mangayaro'; -export { default as Mangaz } from './Mangaz'; export { default as Mangazure } from './Mangazure'; export { default as ManHastro } from './ManHastro'; export { default as ManHatic } from './ManHatic'; @@ -700,8 +699,6 @@ export { default as WestManga } from './WestManga'; 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';