您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
girlygirlpic写真批量下载
当前为
// ==UserScript== // @name girlygirlpic写真一键批量下载 // @namespace http://tampermonkey.net/ // @version 0.1 // @description girlygirlpic写真批量下载 // @author ygy // @match https://en.girlygirlpic.com/a/* // @require https://cdn.staticfile.org/jquery/2.1.3/jquery.js // @require https://cdnjs.cloudflare.com/ajax/libs/axios/1.1.3/axios.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js // @icon https://www.google.com/s2/favicons?sz=64&domain=girlygirlpic.com // @grant none // @run-at document-end // @license MIT // ==/UserScript== (function() { 'use strict'; let fileList = [] function getFIleList(){ let $imgs = $("picture>img") if ($imgs.length==0){ console.log("error!") return false } console.log("共"+$imgs.length+"张") let flist = [] for (let i=0;i<$imgs.length;i++){ flist.push({ path: $imgs[i].getAttribute('data-src'), fileName: i+".jpg" }) } fileList = flist console.log(fileList) } function handleDownload(file_name) { const zip = new JSZip() const cache = {} const promises = [] fileList.forEach((item,index) => { // console.log('item', item) let pre_str = "第"+index+"张:" setBtnText("尝试获取。。。",pre_str) const promise = getFile(item.path).then(data => { // eslint-disable-next-line camelcase const file_name = item.fileName zip.file(file_name, data, {binary: true}) setBtnText("完成!",pre_str) // cache[file_name] = data }) promises.push(promise) }) Promise.all(promises).then(() => { zip.generateAsync({type: 'blob'}).then(content => { // 生成二进制流 // FileSaver.saveAs(content, '文件下载.zip') // 利用file-saver保存文件 自定义文件名 // eslint-disable-next-line no-undef saveAs(content, file_name+'.zip') // 利用file-saver保存文件 自定义文件名 setBtnText("下载完成!") }) }) } function getFile(url) { return new Promise((resolve, reject) => { axios({ method: 'get', url: url, responseType: 'blob' // responseType: 'arraybuffer' }) .then(data => { console.log('data', data) resolve(data.data) }) .catch(error => { reject(error.toString()) }) }) } function multiDownload(){ getFIleList() if (fileList.length <= 0){ alert("没有图片!") return false } let opt = confirm("共获取了"+fileList.length+"张照片,是否开始下载?") if (opt == false){ alert("已终止。。。") return false } handleDownload(getZipName()) } function getZipName(){ return $(".post-title.entry-title>.on-popunder").text() } function setBtnText(str,prefix=''){ $('.downloadBtn').text(prefix+str) } function insertBtn(){ let $dev = $(".zilla-social.size-16px") let $btn = $('<span><input class="downloadBtn" type="button" value="批量下载" ></span>') $dev.append($btn) } function scriptStart(){ insertBtn() $('.downloadBtn').on('click',multiDownload) } setTimeout(scriptStart,5000) // Your code here... })();