// ==UserScript== // @name Descargar imágenes de Comic Earthstar // @namespace https://comic-earthstar.com/ // @version 1.0 // @description Detecta y descarga todas las imágenes cargadas como blobs en Comic Earthstar // @author TuNombre // @match https://comic-earthstar.com/* // @grant none // @downloadURL none // ==/UserScript== (function () { 'use strict'; // Crear un contenedor para almacenar las URLs detectadas const detectedURLs = new Set(); // Crear un botón para iniciar la descarga const downloadButton = document.createElement('button'); downloadButton.innerText = 'Descargar imágenes'; downloadButton.style.position = 'fixed'; downloadButton.style.top = '10px'; downloadButton.style.right = '10px'; downloadButton.style.zIndex = '9999'; downloadButton.style.padding = '10px'; downloadButton.style.backgroundColor = '#28a745'; downloadButton.style.color = 'white'; downloadButton.style.border = 'none'; downloadButton.style.borderRadius = '5px'; downloadButton.style.cursor = 'pointer'; document.body.appendChild(downloadButton); // Interceptar peticiones de tipo blob en la red const originalFetch = window.fetch; window.fetch = async function (...args) { const response = await originalFetch(...args); if (response.url.startsWith('blob:https://comic-earthstar.com')) { detectedURLs.add(response.url); } return response; }; // Función para descargar las imágenes async function downloadImages() { if (detectedURLs.size === 0) { alert('No se detectaron imágenes para descargar.'); return; } let counter = 1; for (const blobUrl of detectedURLs) { try { const blob = await fetch(blobUrl).then((res) => res.blob()); const link = document.createElement('a'); const url = URL.createObjectURL(blob); link.href = url; link.download = `imagen_${String(counter).padStart(3, '0')}.png`; link.click(); // Liberar el objeto URL temporal URL.revokeObjectURL(url); counter++; } catch (error) { console.error('Error descargando la imagen:', blobUrl, error); } } alert('Descarga completa.'); } // Asignar la función de descarga al botón downloadButton.addEventListener('click', downloadImages); })();