Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Zbulu Decorator and websites #256

Closed
wants to merge 81 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
3e2dc86
Create WordPressZbulu.ts
MikeZeDev Jul 23, 2023
fbb75d8
Merge branch 'master' into zbulu
MikeZeDev Sep 20, 2023
60ace40
Merge branch 'master' into zbulu
MikeZeDev Sep 29, 2023
38542fb
zbulu : port websites and deleted dead one
MikeZeDev Sep 30, 2023
c53af04
Merge branch 'master' into zbulu
MikeZeDev Oct 1, 2023
8c89f86
Merge branch 'master' into zbulu
MikeZeDev Oct 4, 2023
001e8c5
Merge branch 'master' into zbulu
MikeZeDev Oct 4, 2023
8005b4d
Merge branch 'master' into zbulu
MikeZeDev Oct 15, 2023
36eb7d7
Update _index.ts
MikeZeDev Oct 15, 2023
524076b
use new error in decorator
MikeZeDev Oct 15, 2023
f3d32bc
Merge branch 'master' into zbulu
MikeZeDev Oct 23, 2023
75f05f4
fixes and tests
MikeZeDev Oct 26, 2023
80b282b
Merge branch 'master' into zbulu
MikeZeDev Oct 29, 2023
6d93203
Update _index.ts
MikeZeDev Oct 29, 2023
11ec97a
Merge branch 'master' into zbulu
MikeZeDev Oct 31, 2023
7679661
Update _index.ts
MikeZeDev Oct 31, 2023
e2b4be5
Merge branch 'master' into zbulu
MikeZeDev Nov 2, 2023
3f3b3da
Update _index.ts
MikeZeDev Nov 2, 2023
6a0af1f
Update HeavenManga.ts
MikeZeDev Nov 7, 2023
9dc3a3f
Merge branch 'master' into zbulu
MikeZeDev Nov 10, 2023
1745cfa
Update _index.ts
MikeZeDev Nov 10, 2023
07696f1
Merge branch 'master' into zbulu
MikeZeDev Nov 12, 2023
712838e
use origin placeholder
MikeZeDev Nov 12, 2023
072aa88
fix clipboard
MikeZeDev Nov 14, 2023
bc80c80
Merge branch 'master' into zbulu
MikeZeDev Nov 27, 2023
8b0f437
Update _index.ts
MikeZeDev Nov 27, 2023
07d1d15
Add manganelome
MikeZeDev Dec 4, 2023
bbb2623
Merge branch 'master' into zbulu
MikeZeDev Dec 14, 2023
82c201e
Update _index.ts
MikeZeDev Dec 14, 2023
41c4aec
fixes beetoon fake pages and zbulu duplicates
MikeZeDev Dec 18, 2023
d71f700
Merge branch 'master' into zbulu
MikeZeDev Jan 5, 2024
f6798dc
Update _index.ts
MikeZeDev Jan 5, 2024
a3dc038
Merge branch 'master' into zbulu
MikeZeDev Jan 16, 2024
521574b
improve platform abstraction
MikeZeDev Jan 16, 2024
0162104
Merge branch 'master' into zbulu
MikeZeDev Feb 5, 2024
258c47c
Update _index.ts
MikeZeDev Feb 5, 2024
7e9a92b
Merge branch 'master' into zbulu
MikeZeDev Feb 26, 2024
5ae6f6b
Update _index.ts
MikeZeDev Feb 26, 2024
4ac572d
remove useless href
MikeZeDev Mar 9, 2024
e5e4baf
minor code changes
MikeZeDev Mar 9, 2024
96f9678
Merge branch 'master' into zbulu
MikeZeDev Mar 23, 2024
df15f2b
Merge branch 'master' into zbulu
MikeZeDev Apr 26, 2024
75026b0
Update _index.ts
MikeZeDev Apr 26, 2024
650a6d2
Merge branch 'master' into zbulu
MikeZeDev Apr 27, 2024
211a842
Update _index.ts
MikeZeDev Apr 27, 2024
a775e5d
Merge branch 'master' into zbulu
MikeZeDev May 7, 2024
1884850
update e2e tests to use vitest
MikeZeDev May 7, 2024
c18aee7
Merge branch 'master' into zbulu
MikeZeDev May 18, 2024
8a9ba14
Update _index.ts
MikeZeDev May 18, 2024
a6e2cb6
Merge branch 'master' into zbulu
MikeZeDev Jun 15, 2024
38d1864
Update _index.ts
MikeZeDev Jun 15, 2024
5ca75d0
Merge branch 'master' into zbulu
MikeZeDev Jun 18, 2024
9a682cb
Update _index.ts
MikeZeDev Jun 18, 2024
27424e8
Merge branch 'master' into zbulu
MikeZeDev Jul 6, 2024
ee29ed5
add bookmarks mapping
MikeZeDev Jul 6, 2024
cb0e486
Merge branch 'master' into zbulu
MikeZeDev Jul 28, 2024
432c419
Update _index.ts
MikeZeDev Jul 28, 2024
fbd5e87
Merge branch 'master' into zbulu
MikeZeDev Aug 14, 2024
dddc7c3
update bookmarkconverters
MikeZeDev Aug 14, 2024
4bbe8f4
revamp PR
MikeZeDev Aug 14, 2024
bec7215
fix typo
MikeZeDev Aug 14, 2024
fe74c71
Merge branch 'master' into zbulu
MikeZeDev Aug 16, 2024
4141e94
Update HolyManga.ts
MikeZeDev Aug 16, 2024
719edc7
Merge branch 'master' into zbulu
MikeZeDev Sep 9, 2024
cca8675
Update _index.ts
MikeZeDev Sep 9, 2024
5171228
Remove MangaNeloMe
MikeZeDev Sep 23, 2024
013da4c
Update HeavenManga.ts
MikeZeDev Sep 23, 2024
b0e6620
Merge branch 'master' into zbulu
MikeZeDev Oct 7, 2024
815d9b7
fix tags
MikeZeDev Oct 7, 2024
eb3a1b0
Update HeavenManga.ts
MikeZeDev Oct 12, 2024
3c80b17
Merge branch 'master' into zbulu
MikeZeDev Oct 13, 2024
0600965
Update _index.ts
MikeZeDev Oct 13, 2024
6ee78bb
use arrayextension properly
MikeZeDev Oct 19, 2024
6a527ea
Update WordPressZbulu.ts
MikeZeDev Oct 19, 2024
5f1e445
Merge branch 'master' into zbulu
MikeZeDev Oct 27, 2024
0e05a52
update tests
MikeZeDev Oct 27, 2024
5cce29a
Merge branch 'master' into zbulu
MikeZeDev Nov 17, 2024
25cf65e
Merge branch 'master' into zbulu
MikeZeDev Nov 26, 2024
ff86588
Merge branch 'master' into zbulu
MikeZeDev Dec 15, 2024
eb451f0
reflect Common changes
MikeZeDev Dec 15, 2024
5c4a101
Restore legacy HolyManga (theme changed)
MikeZeDev Jan 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions web/src/engine/transformers/BookmarkConverter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ export const legacyWebsiteIdentifierMap = new Map([
[ 'flamescans-org', 'flamecomics' ],
[ 'galaxyaction', 'galaxymanga' ],
[ 'gateanimemanga', 'gatemanga' ],
[ 'heavenmanga', 'manhwafullnet' ],
[ 'heavenmanga2', 'heavenmanga' ],
[ 'imperioscans', 'neroxus' ],
[ 'instamanhwa', 'xmanhwa' ],
[ 'kisscomic', 'readcomiconline' ],
Expand Down
2 changes: 2 additions & 0 deletions web/src/engine/transformers/BookmarkConverter_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ const legacyWebsiteIdentifierMapTestCases = [
{ sourceID: 'flamescans-org', targetID: 'flamecomics' },
{ sourceID: 'galaxyaction', targetID: 'galaxymanga' },
{ sourceID: 'gateanimemanga', targetID: 'gatemanga' },
{ sourceID: 'heavenmanga', targetID: 'manhwafullnet' },
{ sourceID: 'heavenmanga2', targetID: 'heavenmanga' },
{ sourceID: 'imperioscans', targetID: 'neroxus' },
{ sourceID: 'instamanhwa', targetID: 'xmanhwa' },
{ sourceID: 'kisscomic', targetID: 'readcomiconline' },
Expand Down
46 changes: 46 additions & 0 deletions web/src/engine/websites/HeavenManga.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { Tags } from '../Tags';
import icon from './HeavenManga.webp';
import { Chapter, DecoratableMangaScraper, type Manga } from '../providers/MangaPlugin';
import * as Common from './decorators/Common';
import { FetchJSON } from '../platform/FetchProvider';

function MangaInfoExtractor(element: HTMLAnchorElement) {
return {
id: element.pathname,
title: element.querySelector('img').alt.trim()
};
}

type APIChapter = {
data: {
slug: string
id : number
}[]
}

const scriptPages = `window.pUrl.map(page => page.imgURL);`;

@Common.MangaCSS(/^{origin}\/manga\/[^/]+$/, 'div.site-content div.post-title h3')
@Common.MangasMultiPageCSS('/top?page={page}', 'div.page-item-detail div.photo a.thumbnail', 1, 1, 0, MangaInfoExtractor)
@Common.PagesSinglePageJS(scriptPages, 500)
@Common.ImageAjax()
export default class extends DecoratableMangaScraper {

public constructor() {
super('heavenmanga', `HeavenManga`, 'https://heavenmanga.com', Tags.Language.Spanish, Tags.Source.Aggregator, Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa);
}

public override get Icon() {
return icon;
}

public override async FetchChapters(manga: Manga): Promise<Chapter[]> {
const request = new Request(new URL(manga.Identifier, this.URI), {
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
});
const { data } = await FetchJSON<APIChapter>(request);
return data.map(page => new Chapter(this, manga, `/manga/leer/${page.id}`, `Chapter ${page.slug}`));
}
}
51 changes: 0 additions & 51 deletions web/src/engine/websites/HeavenManga2.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import { TestFixture, type Config } from '../../../test/WebsitesFixture';
const config: Config = {
plugin: {
id: 'heavenmanga2',
title: 'HeavenManga'
},
container: {
url: 'https://heavenmanga.com/manga/black-clover',
id: '/manga/black-clover',
title: 'Black Clover'
},
child: {
id: '/manga/leer/122619',
title: 'Chapter 333'
},
entry: {
index: 0,
size: 1_055_197,
type: 'image/jpeg'
}
};
import { TestFixture, type Config } from '../../../test/WebsitesFixture';

const config: Config = {
plugin: {
id: 'heavenmanga',
title: 'HeavenManga'
},
container: {
url: 'https://heavenmanga.com/manga/black-clover',
id: '/manga/black-clover',
title: 'Black Clover'
},
child: {
id: '/manga/leer/122619',
title: 'Chapter 333'
},
entry: {
index: 0,
size: 1_055_197,
type: 'image/jpeg'
}
};

new TestFixture(config).AssertWebsite();
22 changes: 22 additions & 0 deletions web/src/engine/websites/ManhwaFullNet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { Tags } from '../Tags';
import icon from './ManhwaFullNet.webp';
import { DecoratableMangaScraper } from '../providers/MangaPlugin';
import * as Common from './decorators/Common';
import * as Zbulu from './decorators/WordPressZbulu';

@Common.MangaCSS(/^{origin}\/[^/]+\/$/, Zbulu.queryManga, Zbulu.MangaLabelExtractor)
@Zbulu.MangasMultiPageCSS('/comic-list/page-{page}/')
@Zbulu.ChaptersMultiPageCSS(Zbulu.chapterPath, 'div#chapterList div.items-chapters a')
@Common.PagesSinglePageCSS(Zbulu.queryPages)
@Common.ImageAjax()
export default class extends DecoratableMangaScraper {

public constructor() {
super('manhwafullnet', `ManhwaFull(.Net)`, 'https://manhwafull.net', Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Language.English, Tags.Source.Aggregator);
}

public override get Icon() {
return icon;
}

}
Binary file added web/src/engine/websites/ManhwaFullNet.webp
Binary file not shown.
24 changes: 24 additions & 0 deletions web/src/engine/websites/ManhwaFullNet_e2e.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { TestFixture, type Config } from '../../../test/WebsitesFixture';

const config: Config = {
plugin: {
id: 'manhwafullnet',
title: 'ManhwaFull(.Net)'
},
container: {
url: 'https://manhwafull.net/ancient-gods-chosen-warriors/',
id: '/ancient-gods-chosen-warriors/',
title: 'Ancient God’s Chosen Warriors'
},
child: {
id: '/ancient-gods-chosen-warriors-chapter-42',
title: 'Chapter 42'
},
entry: {
index: 0,
size: 87_738,
type: 'image/webp'
}
};

new TestFixture(config).AssertWebsite();
22 changes: 22 additions & 0 deletions web/src/engine/websites/MyToon.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { Tags } from '../Tags';
import icon from './MyToon.webp';
import { DecoratableMangaScraper } from '../providers/MangaPlugin';
import * as Common from './decorators/Common';
import * as Zbulu from './decorators/WordPressZbulu';

@Common.MangaCSS(/^{origin}\/[^/]+\/$/, Zbulu.queryManga, Zbulu.MangaLabelExtractor)
@Zbulu.MangasMultiPageCSS()
@Zbulu.ChaptersMultiPageCSS()
@Common.PagesSinglePageCSS(Zbulu.queryPages)
@Common.ImageAjax()
export default class extends DecoratableMangaScraper {

public constructor() {
super('mytoon', `MyToon`, 'https://mytoon.net', Tags.Media.Manga, Tags.Media.Manhua, Tags.Media.Manhwa, Tags.Language.English, Tags.Source.Aggregator);
}

public override get Icon() {
return icon;
}

}
24 changes: 24 additions & 0 deletions web/src/engine/websites/MyToon_e2e.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { TestFixture, type Config } from '../../../test/WebsitesFixture';

const config: Config = {
plugin: {
id: 'mytoon',
title: 'MyToon'
},
container: {
url: 'https://mytoon.net/one-piece-02/',
id: '/one-piece-02/',
title: 'One Piece'
},
child: {
id: '/one-piece-chapter-1096',
title: 'Chapter 1096'
},
entry: {
index: 0,
size: 450_883,
type: 'image/jpeg'
}
};

new TestFixture(config).AssertWebsite();
5 changes: 3 additions & 2 deletions web/src/engine/websites/_index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ export { default as HastaTeam } from './HastaTeam';
export { default as HastaTeamDDT } from './HastaTeamDDT';
export { default as Hayalistic } from './Hayalistic';
export { default as HDPornComics } from './HDPornComics';
export { default as HeavenManga2 } from './HeavenManga2';
export { default as HeavenManga } from './HeavenManga';
export { default as HenChan } from './HenChan';
export { default as Hentai2Read } from './Hentai2Read';
export { default as Hentai20 } from './Hentai20';
Expand Down Expand Up @@ -422,6 +422,7 @@ export { default as Manhwaclan } from './Manhwaclan';
export { default as ManhwaClub } from './ManhwaClub';
export { default as ManhwaDashRaw } from './ManhwaDashRaw';
export { default as ManhwaEighteen } from './ManhwaEighteen';
export { default as ManhwaFullNet } from './ManhwaFullNet';
export { default as ManhwaHentai } from './ManhwaHentai';
export { default as ManhwaHentaiMe } from './ManhwaHentaiMe';
export { default as ManhwaHub } from './ManhwaHub';
Expand Down Expand Up @@ -466,6 +467,7 @@ export { default as MultPorn } from './MultPorn';
export { default as MundoManhwa } from './MundoManhwa';
export { default as MyComicList } from './MyComicList';
export { default as MyHentaiGallery } from './MyHentaiGallery';
export { default as MyToon } from './MyToon';
export { default as NamiComi } from './NamiComi';
export { default as NatsuID } from './NatsuID';
export { default as NecroScans } from './NecroScans';
Expand Down Expand Up @@ -747,7 +749,6 @@ export { default as EpikManga } from './legacy/EpikManga';
export { default as Futabanet } from './legacy/Futabanet';
export { default as GammaPlus } from './legacy/GammaPlus';
export { default as Guoman8 } from './legacy/Guoman8';
export { default as HeavenManga } from './legacy/HeavenManga';
export { default as HolyManga } from './legacy/HolyManga';
export { default as KanMan } from './legacy/KanMan';
export { default as KissAway } from './legacy/KissAway';
Expand Down
Loading
Loading