// ==UserScript== // @name vgtime图片下载 // @namespace http://tampermonkey.net/ // @version 1.02 // @description vgtime图片下载按鈕 // @author backrock12 // @match https://www.vgtime.com/game/* // @icon https://www.google.com/s2/favicons?sz=64&domain=vgtime.com // @grant GM_download // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_getValue // @grant GM_setValue // @license MIT // @downloadURL none // ==/UserScript== (function () { "use strict"; function init_button() { const h1 = document.querySelector("div.game_box:nth-child(1)"); // console.log(h1); const ce = document.createElement("button"); ce.id = "CDownBtn"; ce.textContent = "全部下载"; ce.className = "btn btn-md btn- open_myremark_box"; ce.style = "padding: 5px;font-size: 16px;"; ce.onclick = function () { down_all(); }; h1.append(ce); } function down_all() { let tlist = document.querySelectorAll(".game_focus_list li img"); // console.log(tlist); if (!tlist || tlist.length == 0) { alert("无资料"); } const titleu = "div.game_box:nth-child(1) > h2:nth-child(2) > a:nth-child(1)"; let title = ""; const titleobj = document.querySelector(titleu); if (titleobj) title = titleobj.innerText.replace("的全部图片", ""); let url_list = []; let oknum = 0; let errornum = 0; const h1obj = document.querySelector(".game_info_box > img:nth-child(1)"); if (h1obj) { const h1url = h1obj.src.substring(0, h1obj.src.lastIndexOf(".jpg") + 4); url_list.push(h1url); } for (let i = 0; i < tlist.length; i++) { if (tlist[i].src.length > 5){ const url = tlist[i].src.substring( 0, tlist[i].src.lastIndexOf(".jpg") + 4 ); url_list.push(url); } } console.log(url_list); for (let i = 0; i < url_list.length; i++) { const url = url_list[i]; const name = title + "_pic_auto_down_" + i.toString().padStart(4, 0) + "_" + url.substring(url.lastIndexOf("/") + 1); //.replace(".", "_"); GM_download({ url: url, name: name, onerror: (error) => { errornum++; console.log(url); console.log(error); }, onload: () => { oknum++; }, }); } const time = url_list.length > 20 ? 2000 : 1000; const IntervalId = setInterval(() => { if (url_list.length == oknum + errornum) { const msg = `下载完成,共${url_list.length}个文件,成功${oknum},失败${errornum}`; alert(msg); clearInterval(IntervalId); } }, time); } init_button(); })();