您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Descarga todas las imágenes de la página de KDS-T Viewer
当前为
// ==UserScript== // @name KDS-T Viewer Full Image Downloader // @namespace kds-t-viewer-downloader // @version 0.3 // @description Descarga todas las imágenes de la página de KDS-T Viewer // @match https://kds-t.jp/viewer/* // @require https://cdn.jsdelivr.net/npm/jszip@3/dist/jszip.min.js // @require https://cdn.jsdelivr.net/npm/file-saver@2/dist/FileSaver.min.js // @grant none // ==/UserScript== (function() { 'use strict'; // Creamos un botón fijo para iniciar la descarga const downloadBtn = document.createElement('button'); downloadBtn.textContent = 'Descargar Imágenes'; downloadBtn.style.cssText = ` position: fixed; top: 10px; right: 10px; z-index: 9999; background: #6e8efb; color: #fff; padding: 8px 12px; border: none; border-radius: 4px; cursor: pointer; `; document.body.appendChild(downloadBtn); downloadBtn.addEventListener('click', async () => { downloadBtn.disabled = true; downloadBtn.textContent = 'Descargando...'; try { // Si fuera necesario, se podría forzar scroll para cargar imágenes lazy load: // window.scrollTo(0, document.body.scrollHeight); // Capturamos todas las etiquetas <img> de la página const imgElements = Array.from(document.querySelectorAll('img')); // Extraemos la URL (atributo src) de cada imagen y filtramos las vacías const imageUrls = imgElements.map(img => img.src).filter(src => src); if (!imageUrls.length) { alert('No se encontraron imágenes en esta página.'); resetButton(); return; } console.log('Imágenes encontradas:', imageUrls); const zip = new JSZip(); // Descargamos cada imagen secuencialmente for (let i = 0; i < imageUrls.length; i++) { const url = imageUrls[i]; console.log(`Descargando imagen ${i+1}: ${url}`); const response = await fetch(url); const blob = await response.blob(); // Nombramos los archivos con números de 3 dígitos const fileName = String(i+1).padStart(3, '0') + '.jpg'; zip.file(fileName, blob); } // Generamos el ZIP y lo descargamos const zipContent = await zip.generateAsync({ type: 'blob' }); saveAs(zipContent, 'kds_t_imagenes.zip'); alert(`Descarga completa: ${imageUrls.length} imágenes descargadas.`); } catch (error) { console.error('Error durante la descarga:', error); alert('Ocurrió un error durante la descarga. Consulta la consola para más detalles.'); } resetButton(); }); function resetButton() { downloadBtn.disabled = false; downloadBtn.textContent = 'Descargar Imágenes'; } })();