Greasy Fork is available in English.
Manga downloader for rawkuma.com
// ==UserScript== // @name RawkumaDownloader // @namespace https://github.com/Timesient/manga-download-scripts // @version 0.3 // @license GPL-3.0 // @author Timesient // @description Manga downloader for rawkuma.com // @icon https://www.google.com/s2/favicons?sz=64&domain=rawkuma.com // @homepageURL https://greasyfork.org/scripts/468157-rawkumadownloader // @supportURL https://github.com/Timesient/manga-download-scripts/issues // @match https://rawkuma.net/* // @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://update.greasyfork.org/scripts/451810/1398192/ImageDownloaderLib.js // @grant GM_info // @grant GM_xmlhttpRequest // ==/UserScript== (function(JSZip, saveAs, ImageDownloader) { 'use strict'; // get title const title = document.querySelector('h1.entry-title').textContent; // get url of images const imageElements = document.querySelectorAll('img.ts-main-image'); const imageURLs = Array.from(imageElements).map(element => element.src); if (imageURLs.length === 0) return; // setup ImageDownloader ImageDownloader.init({ maxImageAmount: imageURLs.length, getImagePromises, title }); // collect promises of image function getImagePromises(startNum, endNum) { return imageURLs .slice(startNum - 1, endNum) .map(url => getImage(url) .then(ImageDownloader.fulfillHandler) .catch(ImageDownloader.rejectHandler) ) } // get promise of image function getImage(url) { return new Promise(resolve => { GM_xmlhttpRequest({ method: 'GET', url, responseType: 'arraybuffer', onload: res => resolve(res.response) }); }); } })(JSZip, saveAs, ImageDownloader);