Skip to content

Commit

Permalink
merge from master (#2554)
Browse files Browse the repository at this point in the history
* fix toonily and add madara websites (#2435) (#2440)

* Manga Şehri (#2426)

* [Site Request] Lovable Subs #2423 (#2445)

* [Site Request] TopManhwa (#2397) (#2446)

* [Site Request] Serein Scans (#2342) (#2448)

* [Site Request] Cutie Pie (#2341) (#2449)

* [Site Request] Anikiga (#2346) (#2447)

* Updated/Removed various templated Websites (#2439)

* [neoxscan] updated domain

* [asurascans] fixed chapter query and image extraction

* [sensescans] updated protocol

* [manhwatime] strip manga/chapter titles

* [komiktap] fixed chapter query and image extraction

* [wordpressmangastream] added todo/note

* [komikav] fixed image extraction

* [komikindoweb] fixed image extraction

* [rawkuma] fixed chapter query and image extraction

* [wordpressmangastream] prepared websites for template update

* [wordpressmangastream] made template compatible to 1.1.2 (keep backward compatibility for older layout)

* removed unavailable websites of worpressmangastream template

* [komiktap] revert change from merge

* [mangaku] fixed image extraction from canvas (#2443)

* Fixed Mundowuxia (#2450)

* [Site Request] added Diamond Fansub #2425 (#2452)

* [9ekor] fixed connector not working #2451 (#2454)

* [ComicPunch] fixed connector not working #2387 (#2456)

* [Bato.to] fixed connector not working #2413 (#2455)

* [Site Request] added JPMANGAS #2453 (#2460)

* Add website mangazuki.mobi (#2461)

* [CoreView] Implement _getMangaFromURI (#2462)

* [WebtoonXYZ] fixed mangas query (#2466)

* MH template and sites that use it (#2464)

* added caisemh

* changed Kuimh to use template

* added mkzhan

* added iqiyi

* Update Kuman55

* added XianMan123

* [mangaWT] update url (#2473)

* added Manatoki (#2474)

* [Site Request] added Comic Trail #2465 (#2472)

* [Site Request] added heros-web #2217 (#2479)

* [Comic Zenon] added (#2482)

* added lxhentai & updated MojoPortalComic (#2478)

* added lxhentai & updated MojoPortalComic

* [wecomics] fixed manga and page query (#2457)

* [wordpressmadara] changed manga id selector to accept IDs with suffix (#2458)

* [nhentai] fixed image extraction, migrated to new API (#2476)

* [wutopiacomics] add support for user account login (via settings) (#2477)

* [manganelolink] added website support (#2480)

* [ManHuaFen] add website support (#2491)

* added CizgiRomanArsivi (#2488)

* [TuhaoManhua] Website removal (#2492)

* fixed Batoto _getPages (#2494)

* added Rawmanga.top (#2487)

* [wuqimh] added (#2486)

* fixed team1x1 and added _getMangaFromURI (#2489)

* [MHKAN] Website removal (#2497)

* [HamTruyen] Change website link address (#2498)

* [manhuaes] changed template to mojoportalcomic (#2459)

* add jpm1234 & manhuagui TLC (#2495)

* Add some websites support for WordpressMadara template (#2510)

* added MangaAy (#2501)

* added webmangatr conector (#2496)

* updated mangasehri icon (#2513)

* add Gateanime manga (#2521)

* added 117漫画网 (bx117) (#2514)

* added MangaRaw (#2516)

* add Sa3i9a (#2524)

* added asgard1team (#2515)

* fixed Newtoki (#2528)

* add mangaspark (#2542)

* added mangalink (#2544)

* fix KolNovel (#2536)

* [flatmanga] updated template websites (#2499)

* [epikmanga] changed template to flatmanga

* [mangatr] changed template to flatmanga

* [truyentranhlh] changed template to flatmanga

* added various templated websites (#2505)

* [twilightscans] added website support

* [flamescans] added website support

* [mangaproz] added website support

* [sinmh] improve usability to overwrite dynamic scripts, some minor renamings

* [manhuagui] use api literal in script

* [manhuabei] fixed copy & paste

* [manhuafen] fixed copy & paste

* [6mh7] added website support

* [ImiTui] add website support

* [manhuaniu] exclude disabled chapter links

Co-authored-by: Nguyễn Tấn Vĩnh <63141930+vinh2201@users.noreply.github.com>

* [mangahost] updated domain (#2533)

* [mangafox] handle image loading errors to ensure promise is resolved (#2534)

* [wordpressmadara] add various websites (#2526)

* [akumanga] added website support

* [1stkissmanhua] added website support

* [legionasia] added website support

* [animangaes] added website support

* [bakaman] added website support

* [boyslove] added website support

* [freecomiconline] added website support

* [bestmanhua] added website support

* [wordpressmadara] add support for configurable path

* [cat-translator] added website support

* [catonhead] added website support

* [comicsvalley] added website support

* [einherjarscans] added website support

* [fdmscan] added website support

* [herozscans] added website support

* [hikariscan] added website support

* [hscans] added website support

* [immortalupdates] added wesbite support

* [jjutsuscans] added website support

* [klankomik] added website support

* [manga-scantrad] added website support

* [mangaarchive] added website support

* [mangaclash] added website support

* [crazyscans] added website support

* [mangahentai] added website support

* [mangalandarabic] added website support

* [manganine] added website support

* [mangareadco] added website support

* [mangarocky] added website support

* [mangaroma] added website support

* [mangaspark] added website support

* [mangastarz] added website support

* [mangayaku] added website support

* [neoxscan] updated domain

* [manhuaga] added website support

* [manhwaraw] added website support

* [freewebtooncoins] added website support

* [manhwatop] added website support

* [manytooncom] added website support

* [markscans] added website support

* [mysticalmerries] added website support

* [nazarickscans] added website support

* [ninjavi] added website support

* [ntsvoidscans] added website support

* [offscan] added website support

* [olaoemanga] added website support

* [origamiorpheans] added website support

* [projetoscanlator] added website support

* [decadencescans] added website support

* [thetopcomic] added website support

* [flatmanga] add support for chapter title query

* [truyentranhaudio] added website support

* [truyentranhaudioonline] added website support

* [twilightscans] added website support

* [webtoonily] added website support

* [woopread] added website support

* [detectiveconanar] added website support

* [mangateca] added website support

* [toongod] added website support

* [yuriverso] added website support

* [mangaspark] delete website that has already been added

* [twilightscans] removed website that was already added

* [flatmanga] revert changes that were already added

* [9anime] bypass streamtape protection (#2553)

* Fix various broken websites (#2552)

* [lelscanvf] updated domain

* [japanread] fixed manga and chapter list extraction

* [futabanet] fixed domain and paths

* [futabanet] adjusted class/file name

* [futabanet] deleted lowercase named file fragment

* [linewebtoon] handle image loading error when composing layers

* [linewebtoon] add throttling as temp soulution to prevent image loading failure

Co-authored-by: 09morbab <30987265+09morbab@users.noreply.github.com>
Co-authored-by: Naufal Hakim <31276236+manh21@users.noreply.github.com>
Co-authored-by: Nguyễn Tấn Vĩnh <63141930+vinh2201@users.noreply.github.com>
Co-authored-by: robo <30987265+Robonau@users.noreply.github.com>
  • Loading branch information
5 people authored Nov 1, 2020
1 parent da8633f commit 63beeec
Show file tree
Hide file tree
Showing 281 changed files with 2,502 additions and 1,061 deletions.
Binary file added src/web/img/connectors/1stkissmanhua
Binary file not shown.
Binary file added src/web/img/connectors/6mh7
Binary file not shown.
Binary file added src/web/img/connectors/akumanga
Binary file not shown.
Binary file added src/web/img/connectors/anikiga
Binary file not shown.
Binary file added src/web/img/connectors/animangaes
Binary file not shown.
Binary file added src/web/img/connectors/asgard1team
Binary file not shown.
Binary file added src/web/img/connectors/bakaman
Binary file not shown.
Binary file added src/web/img/connectors/bestmanhua
Binary file not shown.
Binary file added src/web/img/connectors/boyslove
Binary file not shown.
Binary file added src/web/img/connectors/bx117
Binary file not shown.
Binary file added src/web/img/connectors/caisemh
Binary file not shown.
Binary file added src/web/img/connectors/cat-translator
Binary file not shown.
Binary file added src/web/img/connectors/catonhead
Binary file not shown.
Binary file added src/web/img/connectors/cizgiromanarsivi
Binary file not shown.
Binary file added src/web/img/connectors/comicsvalley
Binary file not shown.
Binary file added src/web/img/connectors/comictrail
Binary file not shown.
Binary file added src/web/img/connectors/comiczenon
Binary file not shown.
Binary file added src/web/img/connectors/crazyscans
Binary file not shown.
Binary file added src/web/img/connectors/cutiepie
Binary file not shown.
Binary file added src/web/img/connectors/decadencescans
Binary file not shown.
Binary file added src/web/img/connectors/detectiveconanar
Binary file not shown.
Binary file added src/web/img/connectors/diamondfansub
Binary file not shown.
Binary file added src/web/img/connectors/einherjarscans
Binary file not shown.
Binary file added src/web/img/connectors/fdmscan
Binary file not shown.
Binary file added src/web/img/connectors/flamescans
Binary file not shown.
Binary file added src/web/img/connectors/freecomiconline
Binary file not shown.
Binary file added src/web/img/connectors/freewebtooncoins
Binary file not shown.
Binary file added src/web/img/connectors/gateanimemanga
Binary file not shown.
Binary file added src/web/img/connectors/herosweb
Binary file not shown.
Binary file added src/web/img/connectors/herozscans
Binary file not shown.
Binary file added src/web/img/connectors/hikariscan
Binary file not shown.
Binary file added src/web/img/connectors/hscans
Binary file not shown.
Binary file added src/web/img/connectors/imitui
Binary file not shown.
Binary file added src/web/img/connectors/immortalupdates
Binary file not shown.
Binary file added src/web/img/connectors/iqiyi
Binary file not shown.
Binary file added src/web/img/connectors/jjutsuscans
Binary file not shown.
Binary file added src/web/img/connectors/jpm1234
Binary file not shown.
Binary file added src/web/img/connectors/jpmangas
Binary file not shown.
Binary file added src/web/img/connectors/klankomik
Binary file not shown.
Binary file removed src/web/img/connectors/kyuroku
Binary file not shown.
Binary file added src/web/img/connectors/legionasia
Binary file not shown.
Binary file added src/web/img/connectors/lovablesubs
Binary file not shown.
Binary file added src/web/img/connectors/lxhentai
Binary file not shown.
Binary file added src/web/img/connectors/manatoki
Binary file not shown.
Binary file added src/web/img/connectors/manga-scantrad
Binary file not shown.
Binary file added src/web/img/connectors/manga3s
Binary file not shown.
Binary file added src/web/img/connectors/mangaarchive
Binary file not shown.
Binary file added src/web/img/connectors/mangaay
Binary file not shown.
Binary file added src/web/img/connectors/mangaclash
Binary file not shown.
Binary file added src/web/img/connectors/mangahentai
Binary file not shown.
Binary file removed src/web/img/connectors/mangaindo
Binary file not shown.
Binary file added src/web/img/connectors/mangalandarabic
Binary file not shown.
Binary file added src/web/img/connectors/mangalink
Binary file not shown.
Binary file added src/web/img/connectors/manganelolink
Binary file not shown.
Binary file added src/web/img/connectors/manganine
Binary file not shown.
Binary file added src/web/img/connectors/mangaproz
Binary file not shown.
Binary file removed src/web/img/connectors/mangapus
Binary file not shown.
Binary file added src/web/img/connectors/mangaraw
Binary file not shown.
Binary file added src/web/img/connectors/mangareadco
Binary file not shown.
Binary file added src/web/img/connectors/mangarocky
Binary file not shown.
Binary file added src/web/img/connectors/mangaroma
Binary file not shown.
Binary file added src/web/img/connectors/mangasehri
Binary file not shown.
Binary file removed src/web/img/connectors/mangaseno
Binary file not shown.
Binary file added src/web/img/connectors/mangaspark
Binary file not shown.
Binary file added src/web/img/connectors/mangastarz
Binary file not shown.
Binary file added src/web/img/connectors/mangateca
Binary file not shown.
Binary file removed src/web/img/connectors/mangatsuki
Binary file not shown.
Binary file added src/web/img/connectors/mangayaku
Binary file not shown.
Binary file added src/web/img/connectors/mangazukimobi
Binary file not shown.
Binary file added src/web/img/connectors/manhuafen
Binary file not shown.
Binary file added src/web/img/connectors/manhuaga
Binary file not shown.
Binary file removed src/web/img/connectors/manhuakan
Binary file not shown.
Binary file added src/web/img/connectors/manhwaraw
Binary file not shown.
Binary file added src/web/img/connectors/manhwatop
Binary file not shown.
Binary file modified src/web/img/connectors/manytoon
Binary file not shown.
Binary file added src/web/img/connectors/manytooncom
Binary file not shown.
Binary file modified src/web/img/connectors/manytoonkr
Binary file not shown.
Binary file added src/web/img/connectors/markscans
Binary file not shown.
Binary file added src/web/img/connectors/mkzhan
Binary file not shown.
Binary file added src/web/img/connectors/mundowuxia
Binary file not shown.
Binary file added src/web/img/connectors/mysticalmerries
Binary file not shown.
Binary file added src/web/img/connectors/nazarickscans
Binary file not shown.
Binary file added src/web/img/connectors/ninjavi
Binary file not shown.
Binary file added src/web/img/connectors/ntsvoidscans
Binary file not shown.
Binary file added src/web/img/connectors/offscan
Binary file not shown.
Binary file added src/web/img/connectors/olaoemanga
Binary file not shown.
Binary file added src/web/img/connectors/origamiorpheans
Binary file not shown.
Binary file added src/web/img/connectors/projetoscanlator
Binary file not shown.
Binary file added src/web/img/connectors/rawmangas
Binary file not shown.
Binary file added src/web/img/connectors/rawmangatop
Binary file not shown.
Binary file added src/web/img/connectors/s2manga
Binary file not shown.
Binary file added src/web/img/connectors/sa3i9a
Binary file not shown.
Binary file added src/web/img/connectors/sereinscans
Binary file not shown.
Binary file added src/web/img/connectors/thetopcomic
Binary file not shown.
Binary file added src/web/img/connectors/toongod
Binary file not shown.
Binary file added src/web/img/connectors/topmanhuanet
Binary file not shown.
Binary file added src/web/img/connectors/truyentranhaudio
Binary file not shown.
Binary file added src/web/img/connectors/truyentranhaudioonline
Binary file not shown.
Binary file removed src/web/img/connectors/tuhaomanhua
Binary file not shown.
Binary file added src/web/img/connectors/twilightscans
Binary file not shown.
Binary file added src/web/img/connectors/webmangatr
Binary file not shown.
Binary file added src/web/img/connectors/webtoonily
Binary file not shown.
Binary file added src/web/img/connectors/woopread
Binary file not shown.
Binary file added src/web/img/connectors/wuqimh
Binary file not shown.
Binary file added src/web/img/connectors/xianman123
Binary file not shown.
Binary file added src/web/img/connectors/yuriverso
Binary file not shown.
12 changes: 12 additions & 0 deletions src/web/mjs/connectors/AkuManga.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class AkuManga extends WordPressMadara {

constructor() {
super();
super.id = 'akumanga';
super.label = 'AkuManga';
this.tags = [ 'webtoon', 'arabic' ];
this.url = 'https://akumanga.com';
}
}
24 changes: 24 additions & 0 deletions src/web/mjs/connectors/AniMangaES.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class AniMangaES extends WordPressMadara {

constructor() {
super();
super.id = 'animangaes';
super.label = 'ANIMANGAES';
this.tags = [ 'webtoon', 'english' ];
this.url = 'https://animangaes.com';

this.queryPages = 'div.reading-content p source';
}

async _getPages(chapter) {
let uri = new URL(chapter.id, this.url);
let request = new Request(uri, this.requestOptions);
let data = await this.fetchDOM(request, this.queryPages);
return data.map(element => this.createConnectorURI({
url: this.getAbsolutePath(element.dataset['src'] || element['srcset'] || element, request.url),
referer: request.url
}));
}
}
60 changes: 60 additions & 0 deletions src/web/mjs/connectors/Asgard1team.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import Connector from '../engine/Connector.mjs';
import Manga from '../engine/Manga.mjs';

export default class Asgard1team extends Connector {

constructor() {
super();
super.id = 'asgard1team';
super.label = 'Asgard1team';
this.tags = [ 'manga', 'webtoon', 'arabic' ];
this.url = 'https://www.asgard1team.com';
}

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 request = new Request(this.url+'/manga-list/?page='+page, this.requestOptions);
let data = await this.fetchDOM(request, 'div.anime-list-content div.manga-card');
return data.map(element => {
return {
id: this.getRootRelativeOrAbsoluteLink(element.querySelector('a.manga-card__title'), request.url),
title: element.querySelector('source.img-responsive').getAttribute('alt').trim()
};
});
}

async _getMangaFromURI(uri) {
let request = new Request(uri, this.requestOptions);
let data = await this.fetchDOM(request, 'div.col-md-9 div.author-info-title > h6');
let id = uri.pathname + uri.search;
let title = data[0].textContent.trim();
return new Manga(this, id, title);
}

async _getChapters(manga) {
let request = new Request(new URL(manga.id, this.url), this.requestOptions);
let data = await this.fetchDOM(request, 'tbody > tr');
return data.map(element => {
let num = element.querySelector('td[scope="row"]').textContent.trim();
let re = new RegExp(manga.title,'i');
return {
id: this.getRootRelativeOrAbsoluteLink(element.querySelector('a'), this.url),
title: `${num} ${element.querySelector('a').text.replace(re,'').replace(num,'').trim()}`
};
});
}

async _getPages(chapter) {
let request = new Request(new URL(chapter.id, this.url), this.requestOptions);
let data = await this.fetchDOM(request,'div.container source');
return data.map(element => this.getAbsolutePath(element,this.url));
}
}
4 changes: 1 addition & 3 deletions src/web/mjs/connectors/AsuraScans.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ export default class AsuraScans extends WordPressMangastream {
super.label = 'Asura Scans';
this.tags = [ 'webtoon', 'english' ];
this.url = 'https://asurascans.com';

this.path = '/manga/';

this.queryMangas = 'div#content div.postbody div.listupd div.bs div.bsx a';
this.queryChapters = 'div#content div.postbody article ul li span.lchx a';
this.queryPages = 'div#content div.postarea article div#readerarea source';
}
}
3 changes: 2 additions & 1 deletion src/web/mjs/connectors/BacaKomik.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export default class BacaKomik extends WordPressMangastream {

this.queryMangas = 'div.cpp div.daftarkartun div.jdlbar ul li a.tip';
this.queryChapters = 'div.eps_lst ul li span.lchx a';
this.queryPages = 'div.chapter-area div.chapter-content div.chapter-image source';
this.queryChaptersTitle = undefined;
this.queryPages = 'div.chapter-area div.chapter-content div.chapter-image img';
}
}
22 changes: 1 addition & 21 deletions src/web/mjs/connectors/BacaManga.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,7 @@ export default class BacaManga extends WordPressMangastream {
this.url = 'https://bacamanga.co';
this.path = '/manga/?list';

this.queryMangas = 'div#content div.soralist ul li a.series';
this.queryChapters = 'div.bxcl ul li span.lchx a';
}

async _initializeConnector() {
/*
* sometimes cloudflare bypass will fail, because chrome successfully loads the page from its cache
* => append random search parameter to avoid caching
*/
let uri = new URL(this.path, this.url);
uri.searchParams.set('ts', Date.now());
uri.searchParams.set('rd', Math.random());
let request = new Request(uri, this.requestOptions);
await Engine.Request.fetchUI(request, '', 25000);
}

async _getPages(chapter) {
let script = `
var _0x5a7e=['RT/DoMKjw7rCgsKg','dHbDm8OELcKcFwbCgQ==','XXAsYUkPeDjCtwTDlcOmw4LDmiNqwrN4PFR4','w77CmyzDpy0=','VQjDmGrDpBE1w5rDpMKn','YMK8wqFZXw==','w4BSw65Fw4vCjsOUCsOcwpTCvsOfZVsnw4k=','w7EYw7BRbw==','Wn00bFkUdzjCuwnDgMKqw53DgH9qwqwj','eB7CjcOYEQ==','dcKPwr3DlhACwq8=','wqNsw5leJg==','ZcKMwrTDk8Ka','w4UJwrUCJiTDmA8QB1lEDwgxB1lIw6xHVSnDvETCgMKLwpbCnsOnMsKwwrguw5U=','OD18GWw=','d8KUw44=','wqM4esKUwqQ=','wrF8w7JyEA==','wp87FktB','NSdlEg==','JDR8CkY2VcKWw7vDtg0=','HDjDvMK1w6I=','woxKRMO9wpA=','TcK5w487Rw==','aMKpwqnDilY=','wqgYTw=='];(function(_0x560cfb,_0x28062a){var _0x15feb8=function(_0x235155){while(--_0x235155){_0x560cfb['push'](_0x560cfb['shift']());}};_0x15feb8(++_0x28062a);}(_0x5a7e,0x1a3));var _0x5117=function(_0x560cfb,_0x28062a){_0x560cfb=_0x560cfb-0x0;var _0x15feb8=_0x5a7e[_0x560cfb];if(_0x5117['JHkugp']===undefined){(function(){var _0x13080a=function(){var _0x1937a6;try{_0x1937a6=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x1a47b4){_0x1937a6=window;}return _0x1937a6;};var _0x57d99a=_0x13080a();var _0x1f08ef='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x57d99a['atob']||(_0x57d99a['atob']=function(_0x543705){var _0xad2710=String(_0x543705)['replace'](/=+$/,'');for(var _0x2fff6b=0x0,_0x18ec9a,_0x2ab19e,_0x5eb8d1=0x0,_0x28a170='';_0x2ab19e=_0xad2710['charAt'](_0x5eb8d1++);~_0x2ab19e&&(_0x18ec9a=_0x2fff6b%0x4?_0x18ec9a*0x40+_0x2ab19e:_0x2ab19e,_0x2fff6b++%0x4)?_0x28a170+=String['fromCharCode'](0xff&_0x18ec9a>>(-0x2*_0x2fff6b&0x6)):0x0){_0x2ab19e=_0x1f08ef['indexOf'](_0x2ab19e);}return _0x28a170;});}());var _0x3d8c8d=function(_0x431176,_0x28062a){var _0x24e37f=[],_0x4af179=0x0,_0x3dea05,_0x1c259d='',_0x5cace5='';_0x431176=atob(_0x431176);for(var _0x24e2e5=0x0,_0x279ed3=_0x431176['length'];_0x24e2e5<_0x279ed3;_0x24e2e5++){_0x5cace5+='%'+('00'+_0x431176['charCodeAt'](_0x24e2e5)['toString'](0x10))['slice'](-0x2);}_0x431176=decodeURIComponent(_0x5cace5);for(var _0xc2a3fd=0x0;_0xc2a3fd<0x100;_0xc2a3fd++){_0x24e37f[_0xc2a3fd]=_0xc2a3fd;}for(_0xc2a3fd=0x0;_0xc2a3fd<0x100;_0xc2a3fd++){_0x4af179=(_0x4af179+_0x24e37f[_0xc2a3fd]+_0x28062a['charCodeAt'](_0xc2a3fd%_0x28062a['length']))%0x100;_0x3dea05=_0x24e37f[_0xc2a3fd];_0x24e37f[_0xc2a3fd]=_0x24e37f[_0x4af179];_0x24e37f[_0x4af179]=_0x3dea05;}_0xc2a3fd=0x0;_0x4af179=0x0;for(var _0x1ac39b=0x0;_0x1ac39b<_0x431176['length'];_0x1ac39b++){_0xc2a3fd=(_0xc2a3fd+0x1)%0x100;_0x4af179=(_0x4af179+_0x24e37f[_0xc2a3fd])%0x100;_0x3dea05=_0x24e37f[_0xc2a3fd];_0x24e37f[_0xc2a3fd]=_0x24e37f[_0x4af179];_0x24e37f[_0x4af179]=_0x3dea05;_0x1c259d+=String['fromCharCode'](_0x431176['charCodeAt'](_0x1ac39b)^_0x24e37f[(_0x24e37f[_0xc2a3fd]+_0x24e37f[_0x4af179])%0x100]);}return _0x1c259d;};_0x5117['CTibJB']=_0x3d8c8d;_0x5117['vNnILh']={};_0x5117['JHkugp']=!![];}var _0x47cabe=_0x5117['vNnILh'][_0x560cfb];if(_0x47cabe===undefined){if(_0x5117['LsGjSk']===undefined){_0x5117['LsGjSk']=!![];}_0x15feb8=_0x5117['CTibJB'](_0x15feb8,_0x28062a);_0x5117['vNnILh'][_0x560cfb]=_0x15feb8;}else{_0x15feb8=_0x47cabe;}return _0x15feb8;};new Promise(_0x4481eb=>{var _0x34a1fe={};_0x34a1fe[_0x5117('0x0','pDEZ')]=_0x5117('0x1','9K!G');_0x34a1fe[_0x5117('0x2','t4Su')]=_0x5117('0x3','O5Af');_0x34a1fe[_0x5117('0x4','97J)')]=_0x5117('0x5','H&RU');_0x34a1fe[_0x5117('0x6','FV04')]=_0x5117('0x7','&y$i');_0x34a1fe[_0x5117('0x8','i]@l')]=function(_0xf14210,_0x2592ba){return _0xf14210(_0x2592ba);};_0x34a1fe[_0x5117('0x9','v[yb')]=_0x5117('0xa','F3)#');_0x34a1fe[_0x5117('0xb','ZWkV')]=_0x5117('0xc','#ws)');this[_0x34a1fe[_0x5117('0xd','Xotu')]]=(_0x16a5c3,_0x59889e)=>_0x16a5c3();document[_0x34a1fe[_0x5117('0x2','t4Su')]](_0x34a1fe[_0x5117('0xe','i]@l')])[_0x34a1fe[_0x5117('0xf','C6Wv')]](_0x281761=>this[_0x5117('0x10','ZWkV')](_0x281761[_0x5117('0x11','ZWkV')]));_0x34a1fe[_0x5117('0x12','(uy@')](_0x4481eb,[...document[_0x34a1fe[_0x5117('0x13','LtH]')]](_0x34a1fe[_0x5117('0x14','#ws)')])][_0x34a1fe[_0x5117('0x15','[Q7S')]](_0x2cd5d7=>_0x2cd5d7[_0x5117('0x16','Xotu')][_0x5117('0x17','UDUh')](_0x5117('0x18','FV04'),_0x5117('0x19','H&RU'))));});
`;
let request = new Request( this.url + chapter.id, this.requestOptions );
return await Engine.Request.fetchUI(request, script);
this.queryChaptersTitle = undefined;
}
}
12 changes: 12 additions & 0 deletions src/web/mjs/connectors/BakaMan.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class BakaMan extends WordPressMadara {

constructor() {
super();
super.id = 'bakaman';
super.label = 'BAKAMAN';
this.tags = [ 'manga', 'webtoon', 'thai' ];
this.url = 'https://bakaman.net';
}
}
16 changes: 10 additions & 6 deletions src/web/mjs/connectors/Batoto.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,21 @@ export default class Batoto extends AnyACG {
this.queryMangaTitle = 'div#series-page div.title-set';
this.queryMangaTitleText = 'h3.item-title a';
this.queryMangaTitleFlag = 'span.item-flag';
this.queryMangaPages = 'nav.pager ul.pagination li.page-item:nth-last-child(2) a.page-link';
this.queryMangaPages = 'nav.d-none ul.pagination li.page-item:nth-last-child(2) a.page-link';
this.queryMangas = 'div#series-list div.item-text';
this.queryMangaLink = 'a.item-title';
this.queryMangaFlag = 'span.item-flag';
this.queryChapters = 'div.chapter-list div.main a.chapt';
this.queryPages = /images\s*=\s*(\{.*\})\s*;/g;
this.queryChapters = 'div.episode-list div.main a.visited';
}

async _getPages(chapter) {
let request = new Request(new URL(chapter.id, this.url), this.requestOptions);
let data = await this.fetchRegex(request, this.queryPages);
return Object.values(JSON.parse(data[0]));
let script = `
new Promise(resolve => {
const base = JSON.parse(CryptoJS.AES.decrypt(server, batojs).toString(CryptoJS.enc.Utf8));
resolve(images.map(data => new URL(base + data, window.location.origin).href));
});
`;
let request = new Request(this.url + chapter.id, this.requestOptions);
return Engine.Request.fetchUI(request, script);
}
}
14 changes: 14 additions & 0 deletions src/web/mjs/connectors/BestManhua.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class BestManhua extends WordPressMadara {

constructor() {
super();
super.id = 'bestmanhua';
super.label = 'Best Manhua';
this.tags = [ 'webtoon', 'english' ];
this.url = 'https://bestmanhua.com';

this.queryPages = 'ul.blocks-gallery-grid li.blocks-gallery-item figure source';
}
}
12 changes: 12 additions & 0 deletions src/web/mjs/connectors/BoysLove.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class BoysLove extends WordPressMadara {

constructor() {
super();
super.id = 'boyslove';
super.label = 'Boys Love';
this.tags = [ 'manga', 'webtoon', 'hentai', 'english' ];
this.url = 'https://boyslove.me';
}
}
79 changes: 79 additions & 0 deletions src/web/mjs/connectors/Bx117.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import Connector from '../engine/Connector.mjs';
import Manga from '../engine/Manga.mjs';

export default class Bx117 extends Connector {

constructor() {
super();
super.id = 'bx117';
super.label = '117漫画网 (bx117)';
this.tags = [ 'manga', 'webtoon', 'chinese' ];
this.url = 'http://m.bx117.com';
}
async _getMangaFromURI(uri) {
const request = new Request(uri, this.requestOptions);
const data = await this.fetchDOM(request, 'p.txtItme.h1');
const id = uri.pathname + uri.search;
const title = data[0].textContent.trim();
return new Manga(this, id, title);
}

async _getChapters(manga) {
const request = new Request(this.url + manga.id, this.requestOptions);
const data = await this.fetchDOM(request, 'a.d-nowrap',3);
return data.map(element => {
return {
id: this.getRootRelativeOrAbsoluteLink(element, this.url),
title: element.text.trim()
};
});
}

async _getPages(chapter) {
const script = `
new Promise(resolve => {
resolve(new Array(qTcms_page.total).fill().map((_,ind) => new URL(getPicUrlP(qTcms_S_m_murl,ind+1),qTcms_m_weburl).href));
});
`;
const request = new Request(this.url + chapter.id, this.requestOptions);
return await Engine.Request.fetchUI(request, script);
}

async _getMangas() {
let mangaList = [];
for(let i = 1; i <= 2 ; i++) {
for(let page = 1, run = true; run; page++) {
let mangas = await this._getMangasFromPage(page,i);
mangas.length > 0 ? mangaList.push(...mangas) : run = false;
}
}
return mangaList;
}

async _getMangasFromPage(page,serial) {
const request = new Request('http://m.bx117.com/statics/qingtiancms.ashx', {
method: 'POST',
body: new URLSearchParams({
page: page,
action:'GetWapList',
_id:'listbody',
pagesize:12,
order:1,
classid1:0,
url:'/statics/qingtiancms.ashx',
typelianzai:`110${serial}`
}).toString(),
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
}
});
const data = await this.fetchDOM(request, 'li' ,3);
return data.map(element => {
return {
id: this.getRootRelativeOrAbsoluteLink(element.querySelector('a'), this.url),
title: element.textContent.trim()
};
});
}
}
24 changes: 24 additions & 0 deletions src/web/mjs/connectors/Caisemh.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import MH from './templates/MH.mjs';

export default class Caisemh extends MH {

constructor() {
super();
super.id = 'caisemh';
super.label = 'Caisemh';
this.tags = [ 'manga', 'webtoon', 'chinese', 'hentai' ];
this.url = 'https://www.caisemh.com';

this.queryPages = 'div#cp_img source';
}

async _getPages(chapter) {
const request = new Request(new URL(chapter.id, this.url), {
headers: {
'x-user-agent': 'Mozilla/5.0 (Linux; Android 9; Pixel) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4026.0 Mobile Safari/537.36'
}
});
let data = await this.fetchDOM(request, this.queryPages);
return data.map(element => this.getAbsolutePath(element.dataset.original || element, request.url));
}
}
12 changes: 12 additions & 0 deletions src/web/mjs/connectors/CatOnHead.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class CatOnHead extends WordPressMadara {

constructor() {
super();
super.id = 'catonhead';
super.label = 'Cat on Head Translations';
this.tags = [ 'webtoon', 'english' ];
this.url = 'https://catonhead.com';
}
}
13 changes: 13 additions & 0 deletions src/web/mjs/connectors/CatTranslator.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class CatTranslator extends WordPressMadara {

constructor() {
super();
super.id = 'cat-translator';
super.label = 'Cat-Translator';
this.tags = [ 'manga', 'webtoon', 'thai' ];
this.url = 'https://cat-translator.com';
this.path = '/manga';
}
}
12 changes: 12 additions & 0 deletions src/web/mjs/connectors/CizgiRomanArsivi.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import WordPressMadara from './templates/WordPressMadara.mjs';

export default class CizgiRomanArsivi extends WordPressMadara {

constructor() {
super();
super.id = 'cizgiromanarsivi';
super.label = 'Çizgi Roman Arşivi (CizgiRomanArsivi)';
this.tags = [ 'manga', 'webtoon', 'turkish' ];
this.url = 'https://cizgiromanarsivi.com';
}
}
Loading

0 comments on commit 63beeec

Please sign in to comment.