// ==UserScript== // @name Comic Earthstar Canvas Downloader // @namespace shadows // @version 1.3.0 // @description Captura las páginas del manga desde el canvas de Comic Earthstar y las descarga como imágenes completas. // @author shadows // @license MIT // @match https://comic-earthstar.com/episode/* // @grant GM_download // @require https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js // @downloadURL none // ==/UserScript== "use strict"; (function () { // Crear botón para iniciar descargas const downloadButton = document.createElement("button"); downloadButton.textContent = "Descargar Manga"; downloadButton.style = ` position: fixed; top: 10px; right: 10px; z-index: 10000; background-color: #28a745; color: white; border: none; padding: 10px 20px; font-size: 14px; border-radius: 5px; cursor: pointer; `; document.body.appendChild(downloadButton); // Evento de clic para capturar y descargar imágenes downloadButton.addEventListener("click", async () => { const canvasList = document.querySelectorAll("canvas"); if (canvasList.length === 0) { alert("No se encontró ningún canvas para capturar."); return; } for (const [index, canvas] of canvasList.entries()) { try { await captureAndDownloadCanvas(canvas, index); console.log(`Página ${index + 1} descargada.`); } catch (err) { console.error(`Error al capturar página ${index + 1}:`, err); } } alert("Se descargaron todas las páginas del manga."); }); // Función para capturar y descargar una página del canvas function captureAndDownloadCanvas(canvas, index) { return new Promise((resolve, reject) => { html2canvas(canvas) .then((capturedCanvas) => { const imageUrl = capturedCanvas.toDataURL("image/png"); GM_download({ url: imageUrl, name: `pagina_${String(index + 1).padStart(2, "0")}.png`, onload: resolve, onerror: reject, }); }) .catch(reject); }); } })();