// ==UserScript== // @name Thieme eRef Ripper // @namespace http://tampermonkey.net/ // @version 1.1 // @description Download all PDF from an eBook // @author You // @include https://eref.thieme.de/ebooks/* // @include */ebooks/* // @grant GM_download // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.js // @downloadURL none // ==/UserScript== (function() { 'use strict'; var pdfs = []; let name = document.getElementsByClassName("ct-ebook")[0].parentNode.textContent; var indx = 0; document.arrive(".toc-tree", function() { // 'this' refers to the newly created element let downAllLi = document.createElement("li"); let downAll = document.createElement("input"); downAll.type = 'button'; downAll.value = "Download All"; downAll.addEventListener('click', function() { var elements = document.getElementsByClassName("tocPdfContainer"); indx = 0; for (var ie = 0; ie < elements.length; ie++) { if (elements[ie].getAttribute("data-pdf-link").indexOf(".pdf") !== -1) { indx++; pdfs.push({ download: getBaseUrl() + elements[ie].getAttribute("data-pdf-link"), filename: indx + "_" + name + ".pdf"}); }; }; download_files(pdfs); }, false); downAllLi.appendChild(downAll); this.insertBefore(downAllLi, this.firstChild); }); function download_files(files) { for (var i = 0; i < files.length; i++) { GM_download(files[i].download, name+ "/" + files[i].filename); }; alert("Downloading..."); } function getBaseUrl() { return window.location.protocol + "//" + window.location.host + "/" + window.location.pathname.split('/')[1]; } })();