// ==UserScript== // @name Scoodle Downloader // @namespace http://tampermonkey.net/ // @version 1.0 // @license MIT // @description Download boeken van het Belgische leerlingenplatform Scoodle // @author PcLover2 // @match https://example.com/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/506475/Scoodle%20Downloader.user.js // @updateURL https://update.greasyfork.icu/scripts/506475/Scoodle%20Downloader.meta.js // ==/UserScript== (function() { 'use strict'; // Clear the entire content of the site document.head.innerHTML = ''; document.body.innerHTML = ''; // Set initial tab title document.title = 'Scoodle Downloader'; // Create and append the title and subtitle const title = document.createElement('h1'); title.textContent = 'Scoodle Downloader'; title.style.textAlign = 'center'; document.body.appendChild(title); const subtitle = document.createElement('h2'); subtitle.textContent = 'Made by PcLover2'; subtitle.style.textAlign = 'center'; document.body.appendChild(subtitle); // Create and append the input elements and button const container = document.createElement('div'); container.style.textAlign = 'center'; container.style.marginTop = '50px'; document.body.appendChild(container) const baseUrlLabel = document.createElement('label'); baseUrlLabel.textContent = 'Base URL: '; container.appendChild(baseUrlLabel); const urlInput = document.createElement('input'); urlInput.type = 'text'; urlInput.style.width = '80%'; urlInput.value = 'https://pdfsplitter.blob.core.windows.net/pdf/production/split-books/*a'; container.appendChild(urlInput); container.appendChild(document.createElement('br')); container.appendChild(document.createElement('br')); const endNumberLabel = document.createElement('label'); endNumberLabel.textContent = 'Eindnummer: '; container.appendChild(endNumberLabel); const endNumberInput = document.createElement('input'); endNumberInput.type = 'number'; endNumberInput.style.width = '80%'; endNumberInput.value = 999; container.appendChild(endNumberInput); container.appendChild(document.createElement('br')); container.appendChild(document.createElement('br')); const okButton = document.createElement('button'); okButton.textContent = 'Start Download'; okButton.style.padding = '10px 20px'; okButton.style.fontSize = '16px'; container.appendChild(okButton); container.appendChild(document.createElement('br')); container.appendChild(document.createElement('br')); // Maak een div om de lijst van links te tonen const linksContainer = document.createElement('div'); linksContainer.style.marginTop = '10px'; document.body.appendChild(linksContainer); // Voeg een event listener toe aan de OK-knop okButton.addEventListener('click', () => { const baseURL = urlInput.value.trim(); const endNumber = parseInt(endNumberInput.value.trim(), 10); if (!baseURL || isNaN(endNumber)) { alert('Voer een geldige URL en eindnummer in.'); return; } // Start met mainNumber en subNumber let mainNumber = 1; const pdfLinks = []; // Array om de links op te slaan function tryNextMainNumber() { if (mainNumber > endNumber) { displayLinks(); return; } let subNumber = mainNumber; function tryNextSubNumber() { if (subNumber > endNumber) { mainNumber++; // Zorg ervoor dat er een pauze is voordat je de volgende hoofdnummer probeert setTimeout(() => tryNextMainNumber(), 1000); // 1 seconde wachttijd return; } const pdfURL = `${baseURL}_${mainNumber}_${subNumber}.pdf`; fetch(pdfURL) .then(response => { if (response.ok) { // PDF bestaat, voeg de link toe aan de array console.log(`Found: ${pdfURL}`); pdfLinks.push(pdfURL); // Update mainNumber naar subNumber + 1 mainNumber = subNumber + 1; } subNumber++; tryNextSubNumber(); }) .catch(error => { console.error('Er is een fout opgetreden:', error); alert('Er is een fout opgetreden bij het proberen om de PDF te downloaden.'); }); } tryNextSubNumber(); } function displayLinks() { if (pdfLinks.length === 0) { linksContainer.innerHTML = '

Geen PDF-links gevonden.

'; return; } linksContainer.innerHTML = '

Gevonden PDF-links:

'; pdfLinks.forEach(link => { const a = document.createElement('a'); a.href = link; a.textContent = link; a.style.display = 'block'; a.target = '_blank'; linksContainer.appendChild(a); }); // Open alle links in nieuwe tabbladen pdfLinks.forEach(link => { window.open(link, '_blank'); }); } tryNextMainNumber(); }); })();