Skip to content

Commit c18f4c6

Browse files
authored
maintenance + add 2 simple websites (#1161)
* change domains * ShojoVerse > KingOfScans * Add KaiScans back * Add ManhuaBuddy manga-download/hakuneko#7931 * Add ManhuaRead manga-download/hakuneko#7933
1 parent b84cfd3 commit c18f4c6

20 files changed

+148
-11
lines changed

web/src/engine/websites/CopyManga.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default class extends DecoratableMangaScraper {
4545
private readonly defaultKey = 'xxxmanga.woo.key';
4646

4747
public constructor() {
48-
super('copymanga', 'CopyManga', 'https://www.copy-manga.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Media.Manga, Tags.Language.Chinese, Tags.Source.Aggregator);
48+
super('copymanga', 'CopyManga', 'https://www.copy20.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Media.Manga, Tags.Language.Chinese, Tags.Source.Aggregator);
4949

5050
//this.Settings.url = new Text('urloverride', W.Plugin_Settings_UrlOverride, W.Plugin_Settings_UrlOverrideInfo, this.URI.href);
5151
//(this.Settings.url as Text).Subscribe(value => this.URI.href = value);

web/src/engine/websites/CopyManga_e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const configGlobal: Config = {
66
title: 'CopyManga'
77
},
88
container: {
9-
url: 'https://www.copy-manga.com/comic/zhanvmeizhabao',
9+
url: 'https://www.copy20.com/comic/zhanvmeizhabao',
1010
id: 'zhanvmeizhabao',
1111
title: '渣女沒渣報'
1212
},

web/src/engine/websites/IkigaiMangas.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function MangaInfoExtractor(anchor: HTMLAnchorElement) {
1919
export default class extends DecoratableMangaScraper {
2020

2121
public constructor() {
22-
super('ikigaimangas', 'Ikigai Mangas', 'https://visualikigai.prriegeurfhefieof.xyz', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.Spanish, Tags.Source.Aggregator, Tags.Accessibility.DomainRotation);
22+
super('ikigaimangas', 'Ikigai Mangas', 'https://visualikigai.eltanews.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.Spanish, Tags.Source.Aggregator, Tags.Accessibility.DomainRotation);
2323
}
2424

2525
public override async Initialize(): Promise<void> {

web/src/engine/websites/IkigaiMangas_e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ new TestFixture({
66
title: 'Ikigai Mangas'
77
},
88
container: {
9-
url: 'https://visualikigai.prriegeurfhefieof.xyz/series/el-sacerdote-sanador-del-sol/',
9+
url: 'https://visualikigai.eltanews.com/series/el-sacerdote-sanador-del-sol/',
1010
id: '/series/el-sacerdote-sanador-del-sol/',
1111
title: 'El Sacerdote Sanador del Sol'
1212
},

web/src/engine/websites/InariManga.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as Common from './decorators/Common';
77
export default class extends Kosaku {
88

99
public constructor() {
10-
super('inarimanga', 'InariManga', 'https://inarimanga.yoapps.xyz', Tags.Media.Manhwa, Tags.Media.Manga, Tags.Language.Spanish, Tags.Source.Aggregator);
10+
super('inarimanga', 'InariManga', 'https://inarimanga.yomod.xyz', Tags.Media.Manhwa, Tags.Media.Manga, Tags.Language.Spanish, Tags.Source.Aggregator);
1111
}
1212

1313
public override get Icon() {

web/src/engine/websites/InariManga_e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ new TestFixture({
66
title: 'InariManga',
77
},
88
container: {
9-
url: 'https://inarimanga.yoapps.xyz/series/reembolsare-la-bondad-con-la-que-me-criaron-con-obsesion/',
9+
url: 'https://inarimanga.yomod.xyz/series/reembolsare-la-bondad-con-la-que-me-criaron-con-obsesion/',
1010
id: '/series/reembolsare-la-bondad-con-la-que-me-criaron-con-obsesion/',
1111
title: 'Reembolsaré La Bondad Con La Que Me Criaron Con Obsesión'
1212
},

web/src/engine/websites/KaiScans.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Tags } from '../Tags';
2+
import icon from './KaiScans.webp';
3+
import { DecoratableMangaScraper } from '../providers/MangaPlugin';
4+
import * as MangaStream from './decorators/WordPressMangaStream';
5+
import * as Common from './decorators/Common';
6+
7+
@MangaStream.MangaCSS(/^{origin}\/manga\/[^/]+\/$/)
8+
@MangaStream.MangasSinglePageCSS()
9+
@MangaStream.ChaptersSinglePageCSS()
10+
@MangaStream.PagesSinglePageJS([], 'ts_reader.params.sources.shift().images;')
11+
@Common.ImageAjax()
12+
export default class extends DecoratableMangaScraper {
13+
14+
public constructor() {
15+
super('kaiscans', 'Kai Scans', 'https://kaiscans.org', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Source.Aggregator);
16+
}
17+
18+
public override get Icon() {
19+
return icon;
20+
}
21+
}

web/src/engine/websites/KaiScans.webp

932 Bytes
Binary file not shown.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { TestFixture } from '../../../test/WebsitesFixture';
2+
3+
new TestFixture({
4+
plugin: {
5+
id: 'kaiscans',
6+
title: 'Kai Scans'
7+
},
8+
container: {
9+
url: 'https://kaiscans.org/manga/the-princess-in-the-henhouse/',
10+
id: '/manga/the-princess-in-the-henhouse/',
11+
title: 'The Princess in The Henhouse',
12+
},
13+
child: {
14+
id: '/the-princess-in-the-henhouse-chapter-35/',
15+
title: 'Chapter 35'
16+
},
17+
entry: {
18+
index: 0,
19+
size: 87_049,
20+
type: 'image/jpeg'
21+
}
22+
}).AssertWebsite();

web/src/engine/websites/Shojoverse.ts renamed to web/src/engine/websites/KingOfScans.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Tags } from '../Tags';
2-
import icon from './Shojoverse.webp';
2+
import icon from './KingOfScans.webp';
33
import { DecoratableMangaScraper } from '../providers/MangaPlugin';
44
import * as MangaStream from './decorators/WordPressMangaStream';
55
import * as Common from './decorators/Common';
@@ -12,7 +12,7 @@ import * as Common from './decorators/Common';
1212
export default class extends DecoratableMangaScraper {
1313

1414
public constructor() {
15-
super('shojoverse', 'KingOfManhwa', 'https://kingofmanhwa.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Source.Aggregator);
15+
super('shojoverse', 'KingOfScans', 'https://kingofscans.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Source.Aggregator);
1616
}
1717

1818
public override get Icon() {
936 Bytes
Binary file not shown.

web/src/engine/websites/Shojoverse_e2e.ts renamed to web/src/engine/websites/KingOfScans_e2e.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
new TestFixture({
44
plugin: {
55
id: 'shojoverse',
6-
title: 'KingOfManhwa'
6+
title: 'KingOfScans'
77
},
88
container: {
9-
url: 'https://kingofmanhwa.com/manga/the-player-hides-his-past/',
9+
url: 'https://kingofscans.com/manga/the-player-hides-his-past/',
1010
id: '/manga/the-player-hides-his-past/',
1111
title: 'The Player Hides His Past',
1212
},
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Tags } from '../Tags';
2+
import icon from './ManhuaBuddy.webp';
3+
import { DecoratableMangaScraper } from '../providers/MangaPlugin';
4+
import * as Common from './decorators/Common';
5+
6+
@Common.MangaCSS(/^{origin}\/manhwa\/[^/]+$/, 'div.title_content h1')
7+
@Common.MangasMultiPageCSS('/?page={page}', 'div.item h3.title a')
8+
@Common.ChaptersSinglePageCSS('ul#chapter-list li a')
9+
@Common.PagesSinglePageCSS('div.chapter-content div.item-photo img')
10+
@Common.ImageAjax()
11+
export default class extends DecoratableMangaScraper {
12+
13+
public constructor() {
14+
super('manhuabuddy', 'Manhua Buddy', 'https://manhuabuddy.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Source.Aggregator);
15+
}
16+
17+
public override get Icon() {
18+
return icon;
19+
}
20+
21+
}
288 Bytes
Binary file not shown.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { TestFixture } from '../../../test/WebsitesFixture';
2+
3+
new TestFixture({
4+
plugin: {
5+
id: 'manhuabuddy',
6+
title: 'Manhua Buddy',
7+
},
8+
container: {
9+
url: 'https://manhuabuddy.com/manhwa/playing-the-perfect-fox-eyed-villain',
10+
id: '/manhwa/playing-the-perfect-fox-eyed-villain',
11+
title: 'Playing the Perfect Fox-Eyed Villain'
12+
},
13+
child: {
14+
id: '/manhwa/playing-the-perfect-fox-eyed-villain/chapter-14-ch264161',
15+
title: 'Chapter 14'
16+
},
17+
entry: {
18+
index: 0,
19+
size: 147_291,
20+
type: 'image/jpeg'
21+
}
22+
}).AssertWebsite();

web/src/engine/websites/ManhuaRead.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { Tags } from '../Tags';
2+
import icon from './ManhuaRead.webp';
3+
import { DecoratableMangaScraper } from '../providers/MangaPlugin';
4+
import * as Madara from './decorators/WordPressMadara';
5+
import * as Common from './decorators/Common';
6+
import { FetchWindowScript } from '../platform/FetchProvider';
7+
8+
@Madara.MangaCSS(/^{origin}\/manhua\/[^/]+\/$/, 'ol.breadcrumb li:last-of-type a')
9+
@Madara.MangasMultiPageAJAX()
10+
@Madara.ChaptersSinglePageAJAXv2()
11+
@Madara.PagesSinglePageCSS()
12+
@Common.ImageAjax()
13+
export default class extends DecoratableMangaScraper {
14+
15+
public constructor() {
16+
super('manhuaread', 'ManhuaRead', 'https://manhuaread.com', Tags.Media.Manhwa, Tags.Media.Manhua, Tags.Language.English, Tags.Source.Aggregator);
17+
}
18+
19+
public override get Icon() {
20+
return icon;
21+
}
22+
23+
public override async Initialize(): Promise<void> {
24+
return FetchWindowScript(new Request(new URL(this.URI)), `window.cookieStore.set('wpmanga-adult', '1')`);
25+
}
26+
}
1.63 KB
Binary file not shown.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { TestFixture } from '../../../test/WebsitesFixture';
2+
3+
new TestFixture({
4+
plugin: {
5+
id: 'manhuaread',
6+
title: 'ManhuaRead'
7+
},
8+
container: {
9+
url: 'https://manhuaread.com/manhua/unlovable-replacement/',
10+
id: JSON.stringify({ post: '22450', slug: '/manhua/unlovable-replacement/' }),
11+
title: 'Unlovable Replacement'
12+
},
13+
child: {
14+
id: '/manhua/unlovable-replacement/chapter-113/',
15+
title: 'Chapter 113'
16+
},
17+
entry: {
18+
index: 0,
19+
size: 16_703,
20+
type: 'image/jpeg'
21+
}
22+
}).AssertWebsite();
-848 Bytes
Binary file not shown.

web/src/engine/websites/_index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,14 @@ export { default as JManga } from './JManga';
233233
export { default as JuinJutsuTeam } from './JuinJutsuTeam';
234234
export { default as KabusManga } from './KabusManga';
235235
export { default as KadoComi } from './KadoComi';
236+
export { default as KaiScans } from './KaiScans';
236237
export { default as Kakaopage } from './Kakaopage';
237238
export { default as KaliScan } from './KaliScan';
238239
export { default as Kanjiku } from './Kanjiku';
239240
export { default as KanMan } from './KanMan';
240241
export { default as Kanzenin } from './Kanzenin';
241242
export { default as Katakomik } from './Katakomik';
243+
export { default as KingOfScans } from './KingOfScans';
242244
export { default as KingOfShojo } from './KingOfShojo';
243245
export { default as Kiryuu } from './Kiryuu';
244246
export { default as KissmangaIN } from './KissmangaIN';
@@ -418,6 +420,7 @@ export { default as MangaWT } from './MangaWT';
418420
export { default as Mangazure } from './Mangazure';
419421
export { default as ManHastro } from './ManHastro';
420422
export { default as ManHatic } from './ManHatic';
423+
export { default as ManhuaBuddy } from './ManhuaBuddy';
421424
export { default as ManhuaFast } from './ManhuaFast';
422425
export { default as ManhuaFastNet } from './ManhuaFastNet';
423426
export { default as Manhuaga } from './Manhuaga';
@@ -426,6 +429,7 @@ export { default as ManHuaGui } from './ManHuaGui';
426429
export { default as ManhuaHot } from './ManhuaHot';
427430
export { default as ManhuaNext } from './ManhuaNext';
428431
export { default as ManhuaPlus } from './ManhuaPlus';
432+
export { default as ManhuaRead } from './ManhuaRead';
429433
export { default as Manhuaren } from './Manhuaren';
430434
export { default as ManhuaUs } from './ManhuaUs';
431435
export { default as Manhwa18 } from './Manhwa18';
@@ -612,7 +616,6 @@ export { default as ShadowMangas } from './ShadowMangas';
612616
export { default as ShijieScans } from './ShijieScans';
613617
export { default as ShinigamiID } from './ShinigamiID';
614618
export { default as Shirakami } from './Shirakami';
615-
export { default as Shojoverse } from './Shojoverse';
616619
export { default as ShonenJumpPlus } from './ShonenJumpPlus';
617620
export { default as ShonenJumpRookie } from './ShonenJumpRookie';
618621
export { default as ShonenMagazine } from './ShonenMagazine';

0 commit comments

Comments
 (0)