// ==UserScript==
// @name AllInOneDownloader
// @namespace https://github.com/Timesient/manga-download-scripts
// @version 2.3
// @license GPL-3.0
// @author Timesient
// @description Match and then run a proper script
// @icon https://timesient.github.io/favicon.ico
// @homepageURL https://greasyfork.org/zh-CN/scripts/451839-allinonedownloader
// @supportURL https://github.com/Timesient/manga-download-scripts/issues
// @match https://www.alphapolis.co.jp/manga/official/*/*
// @match https://booklive.jp/bviewer/*
// @match https://viewer.bookwalker.jp/*/*/viewer.html*
// @match https://viewer-subscription.bookwalker.jp/*/*/viewer.html*
// @match https://www.cmoa.jp/bib/speedreader/*
// @match https://comic-boost.com/viewer.html*
// @match https://comic-days.com/*/*
// @match https://shonenjumpplus.com/*/*
// @match https://kuragebunch.com/*/*
// @match https://www.sunday-webry.com/*/*
// @match https://comicbushi-web.com/*/*
// @match https://tonarinoyj.jp/*/*
// @match https://comic-gardo.com/*/*
// @match https://pocket.shonenmagazine.com/*/*
// @match https://comic-zenon.com/*/*
// @match https://comic-trail.com/*/*
// @match https://comic-action.com/*/*
// @match https://magcomi.com/*/*
// @match https://viewer.heros-web.com/*/*
// @match https://feelweb.jp/*/*
// @match https://comicborder.com/*/*
// @match https://comic-ogyaaa.com/*/*
// @match https://www.corocoro.jp/*/*
// @match https://viewer.comic-earthstar.jp/viewer.html*
// @match https://comic-fuz.com/*
// @match https://www.comico.jp/*
// @match https://www.comico.kr/*
// @match https://www.pocketcomics.com/*
// @match https://comic-ryu.jp/*/comic/*.html
// @match https://comic-walker.com/viewer/*
// @match https://book.dmm.com/*
// @match https://*.ebookrenta.com/sc/view_*
// @match https://firecross.jp/reader/*
// @match https://www.ganganonline.com/*
// @match https://ganma.jp/*
// @match https://ichijin-plus.com/episodes/*
// @match https://read.amazon.co.jp/manga/*
// @match https://manga.line.me/*/viewer*
// @match https://kansai.mag-garden.co.jp/assets/files/*
// @match https://www.mangabox.me/reader/*/episodes/*
// @match https://mangacross.jp/*
// @match *://r-cbs.mangafactory.jp/*/*/*
// @match https://mangagun.com/read-*
// @match https://manga-park.com/title/*
// @match https://seiga.nicovideo.jp/watch/*
// @match https://novema.jp/comic/serial/*/*/*
// @match https://piccoma.com/web/viewer/*/*
// @match https://comic.pixiv.net/*
// @match https://www.comicnettai.com/*/viewer.html*
// @match https://pash-up.jp/*/viewer.html*
// @match https://*.papy.co.jp/sc/view_*
// @match https://gammaplus.takeshobo.co.jp/_files/*
// @match https://storia.takeshobo.co.jp/_files/*
// @match https://webcomicgamma.takeshobo.co.jp/_files/*
// @match https://comic-meteor.jp/ptdata/*
// @match https://www.123hon.com/vw/*
// @match https://www.comic-valkyrie.com/samplebook/*
// @match https://manga.zerosumonline.com/online/*
// @match https://comic-polaris.jp/ptdata/*
// @match https://manga-mee.jp/trial_reading/*
// @match https://to-corona-ex.com/episodes/*
// @match https://urasunday.com/title/*
// @match https://web-ace.jp/*/contents/*/episode/*
// @match https://comic.webnewtype.com/contents/*/*
// @match https://weloma.art/*/*/
// @match https://yanmaga.jp/comics/*/*
// @match https://yawaspi.com/*/comic/*
// @match https://ynjn.jp/viewer/*
// @match https://www.yomonga.com/*
// @require https://unpkg.com/[email protected]/dist/axios.min.js
// @require https://unpkg.com/[email protected]/dist/jszip.min.js
// @require https://unpkg.com/[email protected]/dist/FileSaver.min.js
// @require https://unpkg.com/[email protected]/crypto-js.js
// @require https://greasyfork.org/scripts/451810-imagedownloaderlib/code/ImageDownloaderLib.js?version=1129512
// @require https://greasyfork.org/scripts/451811-publusconfigdecoder/code/PublusConfigDecoder.js?version=1096709
// @require https://greasyfork.org/scripts/451812-publuscoordsgenerator/code/PublusCoordsGenerator.js?version=1096723
// @require https://greasyfork.org/scripts/451813-publusnovelpage/code/PublusNovelPage.js?version=1128858
// @require https://greasyfork.org/scripts/451814-publuspage/code/PublusPage.js?version=1124579
// @require https://greasyfork.org/scripts/456423-speedreadertools/code/SpeedReaderTools.js?version=1128886
// @grant GM_info
// @grant GM_xmlhttpRequest
// @grant unsafeWindow
// ==/UserScript==
(async function(axios, JSZip, saveAs, CryptoJS, ImageDownloader, PublusConfigDecoder, PublusCoordsGenerator, PublusNovelPage, PublusPage, SpeedReaderTools) {
'use strict';
// map from host to script
const scriptDict = {
'www.alphapolis.co.jp': 'https://greasyfork.org/zh-CN/scripts/451858-alphapolisdownloader/code/alphapolisdownloader.js',
'booklive.jp': 'https://greasyfork.org/zh-CN/scripts/452562-booklivedownloader/code/booklivedownloader.js',
'viewer.bookwalker.jp': 'https://greasyfork.org/zh-CN/scripts/451859-bookwalkerdownloader/code/bookwalkerdownloader.js',
'viewer-subscription.bookwalker.jp': 'https://greasyfork.org/zh-CN/scripts/451859-bookwalkerdownloader/code/bookwalkerdownloader.js',
'www.cmoa.jp': 'https://greasyfork.org/zh-CN/scripts/456424-cmoadownloader/code/cmoadownloader.js',
'comic-boost.com': 'https://greasyfork.org/zh-CN/scripts/451860-comicboostdownloader/code/comicboostdownloader.js',
'comic-days.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'shonenjumpplus.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'kuragebunch.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'www.sunday-webry.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comicbushi-web.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'tonarinoyj.jp': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comic-gardo.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'pocket.shonenmagazine.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comic-zenon.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comic-trail.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comic-action.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'magcomi.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'viewer.heros-web.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'feelweb.jp': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comicborder.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'comic-ogyaaa.com': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'www.corocoro.jp': 'https://greasyfork.org/zh-CN/scripts/451861-comicdaysdownloader/code/comicdaysdownloader.js',
'viewer.comic-earthstar.jp': 'https://greasyfork.org/zh-CN/scripts/451862-comicearthstardownloader/code/comicearthstardownloader.js',
'comic-fuz.com': 'https://greasyfork.org/zh-CN/scripts/451863-comicfuzdownloader/code/comicfuzdownloader.js',
'www.comico.jp': 'https://greasyfork.org/zh-CN/scripts/451865-comicodownloader/code/comicodownloader.js',
'www.comico.kr': 'https://greasyfork.org/zh-CN/scripts/451865-comicodownloader/code/comicodownloader.js',
'www.pocketcomics.com': 'https://greasyfork.org/zh-CN/scripts/451865-comicodownloader/code/comicodownloader.js',
'comic-ryu.jp': 'https://greasyfork.org/zh-CN/scripts/455399-comicryudownloader/code/comicryudownloader.js',
'comic-walker.com': 'https://greasyfork.org/zh-CN/scripts/451866-comicwalkerdownloader/code/comicwalkerdownloader.js',
'book.dmm.com': 'https://greasyfork.org/zh-CN/scripts/451867-dmmdownloader/code/dmmdownloader.js',
'firecross.jp': 'https://greasyfork.org/zh-CN/scripts/451868-firecrossdownloader/code/firecrossdownloader.js',
'www.ganganonline.com': 'https://greasyfork.org/zh-CN/scripts/455948-ganganonlinedownloader/code/ganganonlinedownloader.js',
'ganma.jp': 'https://greasyfork.org/zh-CN/scripts/451869-ganmadownloader/code/ganmadownloader.js',
'ichijin-plus.com': 'https://greasyfork.org/zh-CN/scripts/455783-ichijinplusdownloader/code/ichijinplusdownloader.js',
'read.amazon.co.jp': 'https://greasyfork.org/zh-CN/scripts/451870-kindlemangadownloader/code/kindlemangadownloader.js',
'manga.line.me': 'https://greasyfork.org/zh-CN/scripts/452814-linemangadownloader/code/linemangadownloader.js',
'kansai.mag-garden.co.jp': 'https://greasyfork.org/zh-CN/scripts/451871-maggardendownloader/code/maggardendownloader.js',
'www.mangabox.me': 'https://greasyfork.org/zh-CN/scripts/455860-mangaboxdownloader/code/mangaboxdownloader.js',
'mangacross.jp': 'https://greasyfork.org/zh-CN/scripts/451872-mangacrossdownloader/code/mangacrossdownloader.js',
'r-cbs.mangafactory.jp': 'https://greasyfork.org/zh-CN/scripts/451873-mangafactorydownloader/code/mangafactorydownloader.js',
'mangagun.com': 'https://greasyfork.org/zh-CN/scripts/453154-mangagundownloader/code/mangagundownloader.js',
'manga-park.com': 'https://greasyfork.org/zh-CN/scripts/455861-mangaparkdownloader/code/mangaparkdownloader.js',
'seiga.nicovideo.jp': 'https://greasyfork.org/zh-CN/scripts/451874-nicomangadownloader/code/nicomangadownloader.js',
'novema.jp': 'https://greasyfork.org/zh-CN/scripts/451875-novemadownloader/code/novemadownloader.js',
'piccoma.com': 'https://greasyfork.org/zh-CN/scripts/451876-piccomadownloader/code/piccomadownloader.js',
'comic.pixiv.net': 'https://greasyfork.org/zh-CN/scripts/451877-pixivcomicdownloader/code/pixivcomicdownloader.js',
'www.comicnettai.com': 'https://greasyfork.org/zh-CN/scripts/451878-publusdownloader/code/publusdownloader.js',
'pash-up.jp': 'https://greasyfork.org/zh-CN/scripts/451878-publusdownloader/code/publusdownloader.js',
'gammaplus.takeshobo.co.jp': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'storia.takeshobo.co.jp': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'webcomicgamma.takeshobo.co.jp': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'comic-meteor.jp': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'www.123hon.com': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'www.comic-valkyrie.com': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'manga.zerosumonline.com': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'comic-polaris.jp': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'manga-mee.jp': 'https://greasyfork.org/zh-CN/scripts/451879-speedbinbdownloader/code/speedbinbdownloader.js',
'to-corona-ex.com': 'https://greasyfork.org/zh-CN/scripts/451880-tocoronaexdownloader/code/tocoronaexdownloader.js',
'urasunday.com': 'https://greasyfork.org/zh-CN/scripts/451881-urasundaydownloader/code/urasundaydownloader.js',
'web-ace.jp': 'https://greasyfork.org/zh-CN/scripts/451887-webacedownloader/code/webacedownloader.js',
'comic.webnewtype.com': 'https://greasyfork.org/zh-CN/scripts/451882-webnewtypedownloader/code/webnewtypedownloader.js',
'weloma.art': 'https://greasyfork.org/zh-CN/scripts/451883-welomadownloader/code/welomadownloader.js',
'yanmaga.jp': 'https://greasyfork.org/zh-CN/scripts/451884-yanmagadownloader/code/yanmagadownloader.js',
'yawaspi.com': 'https://greasyfork.org/zh-CN/scripts/451885-yawaspidownloader/code/yawaspidownloader.js',
'ynjn.jp': 'https://greasyfork.org/zh-CN/scripts/455206-ynjndownloader/code/ynjndownloader.js',
'www.yomonga.com': 'https://greasyfork.org/zh-CN/scripts/451886-yomongadownloader/code/yomongadownloader.js',
}
// get and run the script
GM_xmlhttpRequest({
method: 'GET',
url: scriptDict[window.location.host] || getOtherScript(),
onload: res => eval(res.response)
});
function getOtherScript() {
if (window.location.host.endsWith('papy.co.jp')) return 'https://greasyfork.org/zh-CN/scripts/456364-rentadownloader/code/rentadownloader.js';
if (window.location.host.endsWith('ebookrenta.com')) return 'https://greasyfork.org/zh-CN/scripts/456365-ebookrentadownloader/code/ebookrentadownloader.js';
}
})(axios, JSZip, saveAs, CryptoJS, ImageDownloader, PublusConfigDecoder, PublusCoordsGenerator, PublusNovelPage, PublusPage, SpeedReaderTools);