NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
"use strict"; // ==UserScript== // @name 导入花瓣画板到Eagle // @description 一键发送画板图片(大图)到Eagle收藏 // @author 黄逗酱酱 // @match *://huaban.com/boards/* // @match *://kiic.top/* // @connect http://localhost:41595 // @connect 127.0.0.1:41595 // @connect kiic.top // @connect huaban.com // @connect api.huaban.com // @note 不使用页面内容从而高效采集,只发送用户可以看到的内容 // @icon https://cos.kiic.top/_APP__SDK/taobaozhushuo-icon.png // @version 1.00 // @license MPL-2.0 // @compatible chrome // @compatible edge // @compatible safari // @compatible firefox // @grant GM_setValue // @grant GM_getValue // @grant unsafeWindow // @grant GM_listValues // @grant GM_addValueChangeListener // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @run-at document-body // @require https://cdn.bootcdn.net/ajax/libs/nprogress/0.2.0/nprogress.min.js // @RequireNote 涓流进度条 // @require https://cdn.bootcdn.net/ajax/libs/zepto/1.2.0/zepto.min.js // @RequireNote jq方法精简版 // @require https://greasyfork.org/scripts/430351-eagle%E4%BA%A4%E4%BA%92%E8%84%9A%E6%9C%AC/code/Eagle%E4%BA%A4%E4%BA%92%E8%84%9A%E6%9C%AC.js?version=957317 // @RequireNote EagleAPI封装 // @namespace https://greasyfork.org/users/710095 // @date 2022/5/2 // ==/UserScript== ; ~(async function () { let APIPreset = { /**所有需要加载CSS都会在这里压入 */ "CSS": ["https://cdn.bootcdn.net/ajax/libs/nprogress/0.2.0/nprogress.css",], /**Eagle唤醒 */ "OpenEagle": "eagle:\/\/" }; function SetObjectValue(target, key, newValue) { return Object.defineProperty(target, key, { value: newValue, writable: true, enumerable: true, configurable: true }); } function GetObjectValue(target, key) { var _a; return ((_a = Object.getOwnPropertyDescriptor(target, key)) === null || _a === void 0 ? void 0 : _a.value) || undefined; } let Store = (function () { class Store { constructor() { this._data = {}; let StoreClassThis = this; this._data = this.Get(); // 对本脚本设置数据变化进行实时监听 for (const on_key of GM_listValues()) { this.on(on_key, function (key, OidValue, NewValue, remote) { SetObjectValue(StoreClassThis._data, key, NewValue); }); } } get data() { return this._data; } Get(KeyName, defaultValue) { if (typeof KeyName == "undefined") { let StoreData = {}; for (const key of GM_listValues()) { SetObjectValue(StoreData, key, GM_getValue(key)); } return StoreData; } if (KeyName != undefined) return GM_getValue(KeyName, defaultValue); } remove(KeyName) { return GM_deleteValue(KeyName); } on(key, Callback) { let StoreClassThis = this; return GM_addValueChangeListener(key, function (...a) { Callback.apply(StoreClassThis._data, a); }); } Set(name, value) { return GM_setValue(name, value); } } return new Store(); })(); //注销了脚本 if (Store.Get("User_OFF_Script")) { return; } ; GM_registerMenuCommand(typeof Store.Get("User_OFF_Script") === "boolean" && Store.Get("User_OFF_Script") === false ? "撤销用户协议" : "重置用户协议", function (MouseEvent) { Store.Set("User_OFF_Script", undefined); alert("已撤销用户协议 点击主要模块后将重新询问您"); }); /** * 代码阻塞 * * @param {*} ms 毫秒 * @return undefined * 调用: await this._Sleep(500); */ function Sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } /**顺序数值编号器 参数:开始数字,位数(2=01,3=001) */ function MIU_NUM(num, n) { return (Array(n).join(String(0)) + num).slice(-n); } /** * 添加CSS代码/CSS链接 * @param Code 代码或者链接/或者数组(多个代码) * @param LinkMode 是否以href链接方式写入 */ function AddStyle(Code, LinkMode) { let Head = document.querySelector('head'); function AddAdjStyle(Code) { if (!LinkMode) { let NewElement = document.createElement('style'); NewElement.setAttribute("type", "text/css"); NewElement.setAttribute("Signer", "Kiic"); Head === null || Head === void 0 ? void 0 : Head.appendChild(NewElement); return NewElement; } let NewElement = document.createElement('link'); NewElement.setAttribute("rel", "stylesheet"); NewElement.setAttribute("href", Code); NewElement.setAttribute("type", "text/css"); Head === null || Head === void 0 ? void 0 : Head.appendChild(NewElement); return NewElement; } if (Code instanceof String) return AddAdjStyle(String(Code)); let RunElementList = []; if (Code instanceof Array || Code instanceof Set) { for (const ForCode of Code) { RunElementList.push(AddAdjStyle(ForCode)); } } if (Code instanceof Array) return RunElementList; if (Code instanceof Set) return new Set(RunElementList); } function IsDef(value) { return typeof value == "undefined" && value !== null; } // 防抖节流 const shake = { Data: new Set(), /** * 到期后自动删除 如果被添加将会返回true * - 使用方法: if (shake.isset("scroll", 1500)) return; * @param key 防抖的名称 * @param time 毫秒 * @return {boolean} */ isset(key, time = 1200) { if (this.Data.has(key)) return true; this.Data.add(key); time && setTimeout(() => this.Data.delete(key), time); return false; }, }; /**脚本主界面 */ class ClassAPP_Main { constructor() { let UI = { ICON() { return "https://cos.kiic.top/_APP__SDK/taobaozhushuo-icon.svg"; }, /**主界面 */ Main: () => `<div HM-ScriptMain id="_K9V7O30D4GHO7_HM_ScriptMain_APP">\n <div class="ScriptMain-box">\n <div class="shadow"></div>\n <img class="Center" src="${UI.ICON()}">\n </div>\n </div>\n \n <style>\n [HM-ScriptMain]#_K9V7O30D4GHO7_HM_ScriptMain_APP {\n position: fixed;\n right: 3.5em;\n bottom: 5em;\n width: 50px;\n height: 50px;\n background-color: rgb(255, 255, 255);\n z-index: 9999999999999999999999;\n cursor: pointer;\n overflow: hidden;\n border-radius: 50px;\n \n }\n \n [HM-ScriptMain] .ScriptMain-box{\n position: relative;\n width: 100%;\n height: 100%;\n }\n [HM-ScriptMain] .shadow {\n width: 50px;\n height: 50px;\n left: 0px;\n right: 0px;\n position: absolute;\n }\n \n [HM-ScriptMain]#_K9V7O30D4GHO7_HM_ScriptMain_APP * {\n margin: 0;\n padding: 0;\n }\n \n [HM-ScriptMain] .Center {\n display: grid;\n align-content: center;\n justify-content: center;\n align-items: center;\n }\n \n [HM-ScriptMain] img {\n width: 100%;\n height: auto;\n \n }\n \n [HM-ScriptMain] * {\n -webkit-user-drag: none;\n user-select: none;\n }\n \n [HM-ScriptMain]#_K9V7O30D4GHO7_HM_ScriptMain_APP:hover{\n width: 55px;\n height: 55px;\n right: 3.2em;\n bottom: 4.6em;\n }\n \n [HM-ScriptMain] .shadow:active {\n width: 55px;\n height: 55px;\n box-shadow: inset 0px 3px 6px rgba(0, 0, 0, 0.43);\n border-radius: 50px;\n \n }\n </style>`, }; AddStyle(`#nprogress .bar {background: #29d;position: fixed;z-index: 999999999999999999999999;top: 0;left: 0;width: 100%;height: 2px;}`); // AddStyle(APIPreset.CSS, true); // 添加按钮到页面 let WinMain = $("body"); let APPMain = $(UI.Main()); WinMain.append(APPMain); this.Main = APPMain; } async API_Failure() { return new Promise(((resolve, reject) => { let Add_HTML_Mian = $("body"); let AgreementMain = $(`<div id="HM_API_Failure_K9D546DPG">\n <div id="InfoFrame">\n \x3C!-- 左上角关闭按钮 -->\n <div class="Menu">\n <svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" fill-opacity=".01" d="M0 0h48v48H0z"/><path d="M14 14l20 20M14 34l20-20" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>\n </div>\n <div class="HM-TextMain">\n <h1>无法连接API</h1>\n <a>已经对API发送了处理的请求</a>\n <a>但是API并未返回处理结果</a>\n <a></br></a>\n <a>您可以检查以下内容</a>\n <a>①检查Eagle软件是否已经启动</a>\n <a>②已允许脚本链接网络(需要连接EagleAPI)</a>\n <a>③依然失败则重启Eagle</a>\n <a>④检查脚本是否是最新版本</a>\n </div>\n <div class="HM-info-images">\n <img src="https://cos.kiic.top/_APP__SDK/ScriptsAPP/404_Error.svg">\n </div>\n <div class="HMbutton" >\n <cii>尝试唤醒</cii>\n </div>\n \n </div>\n \n <style>\n #HM_API_Failure_K9D546DPG {\n backdrop-filter: blur(2px);\n top: 0px;\n left: 0px;\n animation: prompt_boxMainBackkk 0.5s;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: 999999999999999;\n display: flex;\n align-content: center;\n justify-content: center;\n align-items: center;\n }\n \n #HM_API_Failure_K9D546DPG a {\n text-decoration: none;\n font-family: auto;\n }\n \n #HM_API_Failure_K9D546DPG h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: 200%;\n font-weight: normal;\n font-family: auto;\n }\n \n #HM_API_Failure_K9D546DPG * {\n -webkit-user-drag: none;\n user-select: none;\n }\n \n @keyframes prompt_boxMainBackkk {\n 0% {\n backdrop-filter: blur(0.2px);\n opacity: 0.25;\n }\n \n 25% {\n backdrop-filter: blur(0.5px);\n opacity: 0.5;\n }\n \n 50% {\n backdrop-filter: blur(1px);\n opacity: 1;\n }\n \n 100% {\n backdrop-filter: blur(2px);\n opacity: 1;\n }\n }\n \n #HM_API_Failure_K9D546DPG #InfoFrame {\n border-radius: 40px;\n overflow: hidden;\n background: linear-gradient(131.46deg, #f6f7fb 2.97%, rgb(246 247 251) 150.02%);\n box-shadow: 0px 2px 27px rgb(25 32 56 / 9%);\n height: 423px;\n width: 534px;\n position: relative;\n z-index: 99999;\n }\n \n #HM_API_Failure_K9D546DPG .Menu {\n background: #0000;\n position: absolute;\n width: 24px;\n height: 24px;\n right: 25px;\n top: 25px;\n border: 1px solid #7E8C95;\n border-radius: 15px;\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n z-index: 100000;\n }\n \n #HM_API_Failure_K9D546DPG .Menu:hover {\n cursor: pointer;\n border: 1px solid #505b62;\n }\n #HM_API_Failure_K9D546DPG .HM-TextMain h1{\n padding-bottom: 30px;\n }\n #HM_API_Failure_K9D546DPG .HM-TextMain {\n position: absolute;\n width: 282px;\n height: 92px;\n left: 42px;\n top: 75px;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 14px;\n line-height: 15px;\n color: #1C3177;\n display: flex;\n flex-direction: column;\n align-content: flex-start;\n align-items: flex-start;\n }\n \n #HM_API_Failure_K9D546DPG .HM-TextMain a {\n padding: 3.9px;\n }\n \n #HM_API_Failure_K9D546DPG .HM-info-images {\n width: 230px;\n height: 230px;\n position: absolute;\n top: 11%;\n right: 5%\n }\n \n #HM_API_Failure_K9D546DPG .HM-info-images img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n \n #HM_API_Failure_K9D546DPG .HMbutton:hover {\n transform: scale(1.15)\n }\n \n #HM_API_Failure_K9D546DPG .HMbutton {\n position: absolute;\n z-index: 999999;\n background: linear-gradient(274.42deg, #92A3FD 0%, #9DCEFF 124.45%);\n border-radius: 86.8684px;\n width: 115px;\n height: 40px;\n color: white;\n letter-spacing: 0.06em;\n font-size: 17px;\n border-width: 0px;\n cursor: pointer;\n bottom: 116px;\n right: 68px;\n display: flex;\n align-items: center;\n justify-content: center;\n align-content: center;\n font-family: auto;\n }\n </style>\n </div>`); let CloseMenu = AgreementMain.find("div.Menu"); let OpenEagleMenu = AgreementMain.find(".HMbutton"); CloseMenu.one("click", function () { AgreementMain.get()[0].remove(); reject(); }); OpenEagleMenu.one("click", function () { unsafeWindow.open(APIPreset.OpenEagle); AgreementMain.get()[0].remove(); resolve(); }); Add_HTML_Mian.append(AgreementMain); })); } /**用户协议 */ async Agreement() { return new Promise(async function (resolve, reject) { let User_OFF_Script = Store.Get("User_OFF_Script"); if ((typeof User_OFF_Script === "boolean") && User_OFF_Script === true) return reject(); if ((typeof User_OFF_Script === "boolean") && User_OFF_Script === false) return resolve(); function ShowAgreement() { return new Promise(async function (resolve, reject) { let Add_HTML_Mian = $("body"); let AgreementMain = $('<div style="display: block;" id="HM_news_-UserAgreement_____Mian">\n <div style="position: fixed; max-width: 0.1px; max-height: 0.1px; overflow: hidden;top: 900vh;left: 900vw;">\n \x3C!-- 导入图片 -->\n <img src="https://cos.kiic.top/_APP__SDK/ScriptsAPP/FirstUse_TextMain_UserAgreement_background%40Text.svg">\n <img src="https://cos.kiic.top/_APP__SDK/ScriptsAPP/FirstUse_TextMain_UserAgreement_background.svg">\n </div>\n <div class="prompt_boxMain_Center">\n <div class="prompt_Main">\n \x3C!-- 左上角关闭按钮 -->\n <div class="Menu">\n <svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">\n <rect width="48" height="48" fill="white" fill-opacity="0.01"></rect>\n <path d="M14 14L34 34" stroke="#333" stroke-width="4" stroke-linecap="round"\n stroke-linejoin="round"></path>\n <path d="M14 34L34 14" stroke="#333" stroke-width="4" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </svg>\n </div>\n <div class="NextMenu_Default">\n <cii>下一步</cii>\n </div>\n <div class="prompt_boxBox_Main">\n <div id="FirstUse">\n <div class="FirstUse_TextMain">\n <h1>欢迎使用!</h1>\n <a>这是您第一次试用</a>\n <a>为了您更加清楚插件用途</a>\n <a>您需要阅读并且同意用户协议</a>\n <a>我们仅会询问一次</a>\n <a>当您关闭此协议我们将不再启用脚本</a>\n <a>第一次使用该版本也会收到该消息</a>\n </div>\n <img style="margin: 15px 0 0 0;" alt="欢迎使用.svg" id="FirstUse"\n src="https://cos.kiic.top/_APP__SDK/ScriptsAPP/FirstUse_TextMain_UserAgreement_background.svg">\n </div>\n <div id="FirstUse_Next" style="display: none;">\n <div class="study">\n <img\n src="https://cos.kiic.top/_APP__SDK/ScriptsAPP/FirstUse_TextMain_UserAgreement_background%40Text.svg">\n </div>\n <div class="FirstUse_TextMain">\n <h1 style="font-size: 1.5em;">用户协议</h1>\n <a class="NextText_1">点击开始使用后则认为我同意以下内容</a>\n <a class="NextText_2">仅作为查看,学习,观赏图片用途</br>\n 本脚本也作为学习使用</br>\n 我将在稍后移除引用</br>\n 我不会查看所属页面不提供的内容</br>\n 在本网页关闭后我将移除引用</a>\n <a class="NextText_3">以下为名称解释:</a>\n <a class="NextText_4">我:用户或使用者,</br>\n 引用:包含但不限于查看,保存,储存,展示</br>\n 本站:当前域名当前网页包含但不限于相关页面</a>\n </div>\n </div>\n </div>\n\n </div>\n <style>\n #HM_news_-UserAgreement_____Mian .NextMenu_Default {\n position: absolute;\n z-index: 999999;\n background: linear-gradient(274.42deg, #92A3FD 0%, #9DCEFF 124.45%);\n border-radius: 86.8684px;\n width: 95px;\n height: 40px;\n color: white;\n font-size: 17px;\n border-width: 0px;\n cursor: pointer;\n bottom: 46px;\n left: 40px;\n }\n\n #HM_news_-UserAgreement_____Mian .NextMenu {\n position: absolute;\n z-index: 999999;\n bottom: 90px;\n right: 70px;\n background: linear-gradient(274.42deg, #92A3FD 0%, #9DCEFF 124.45%);\n border-radius: 86.8684px;\n width: 95px;\n height: 40px;\n color: white;\n font-size: 17px;\n border-width: 0px;\n cursor: pointer;\n }\n\n #HM_news_-UserAgreement_____Mian h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: 200%;\n font-weight: normal;\n font-family: auto;\n }\n\n #HM_news_-UserAgreement_____Mian a {\n text-decoration: none;\n font-family: auto;\n }\n\n #HM_news_-UserAgreement_____Mian #FirstUse_Next a,\n h1 {\n color: #4A707A;\n }\n\n #HM_news_-UserAgreement_____Mian .FirstUse_TextMain {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n #HM_news_-UserAgreement_____Mian .NextText_1 {\n font-size: 14px;\n text-decoration-line: underline;\n height: 1;\n }\n\n #HM_news_-UserAgreement_____Mian .NextText_2 {\n font-size: 13px;\n padding-top: 30px;\n }\n\n #HM_news_-UserAgreement_____Mian .NextText_3 {\n font-size: 13px;\n padding-top: 30px;\n }\n\n #HM_news_-UserAgreement_____Mian .NextText_4 {\n font-size: 11px;\n padding-top: 7px;\n }\n\n #HM_news_-UserAgreement_____Mian #FirstUse_Next>div.FirstUse_TextMain a {\n line-height: 175%;\n }\n\n #HM_news_-UserAgreement_____Mian .FirstUse_TextMain {\n position: absolute;\n top: 50px;\n left: 50px;\n }\n\n #HM_news_-UserAgreement_____Mian #FirstUse_Next .study {\n width: 100px;\n height: 100px;\n position: absolute;\n right: 150px;\n top: 60px;\n }\n\n #HM_news_-UserAgreement_____Mian #FirstUse .FirstUse_TextMain {\n color: rgb(28, 49, 119);\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n position: absolute;\n left: 40px;\n top: 57px;\n\n }\n\n #HM_news_-UserAgreement_____Mian #FirstUse h1 {\n color: #1C3177;\n padding-bottom: 20px;\n }\n\n #HM_news_-UserAgreement_____Mian #FirstUse .FirstUse_TextMain a {\n font-size: 13px;\n padding: 0 0 8px 0;\n }\n\n #HM_news_-UserAgreement_____Mian .NextMenu:hover,\n .NextMenu_Default:hover {\n transform: scale(1.15)\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_boxMain_Center {\n backdrop-filter: blur(2px);\n top: 0px;\n left: 0px;\n animation: prompt_boxMainBackkk 0.5s;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: 999999999999999;\n display: flex;\n align-content: center;\n justify-content: center;\n align-items: center;\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_boxMain_Center * {\n -webkit-user-drag: none;\n user-select: none;\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_Main {\n border-radius: 40px;\n overflow: hidden;\n background: linear-gradient(131.46deg, #f6f7fb 2.97%, rgb(246 247 251) 150.02%);\n box-shadow: 0px 2px 27px rgb(25 32 56 / 9%);\n height: 423px;\n width: 534px;\n position: relative;\n z-index: 99999;\n }\n\n #HM_news_-UserAgreement_____Mian .NextMenu,\n .NextMenu_Default {\n display: grid;\n justify-content: center;\n align-items: center;\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_boxMain_Center .Menu {\n background: #0000;\n position: absolute;\n width: 24px;\n height: 24px;\n right: 25px;\n top: 25px;\n border: 1px solid #7E8C95;\n border-radius: 15px;\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n z-index: 100000;\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_boxMain_Center .Menu:hover {\n cursor: pointer;\n border: 1px solid #505b62;\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_boxMain_Center img,\n i {\n -webkit-user-drag: none;\n }\n\n @keyframes prompt_boxMainBackkk {\n 0% {\n backdrop-filter: blur(0.2px);\n opacity: 0.25;\n }\n\n 25% {\n backdrop-filter: blur(0.5px);\n opacity: 0.5;\n }\n\n 50% {\n backdrop-filter: blur(1px);\n opacity: 1;\n }\n\n 100% {\n backdrop-filter: blur(2px);\n opacity: 1;\n }\n }\n\n #HM_news_-UserAgreement_____Mian .prompt_boxBox_Main {\n display: flex;\n position: absolute;\n bottom: 0px;\n width: 100%;\n height: 100%;\n align-content: center;\n justify-content: center;\n align-items: center;\n z-index: 99999;\n }\n </style>\n </div>\n</div>'); let NextMenu_Default = AgreementMain.find(".NextMenu_Default"); let Menu = AgreementMain.find("div.Menu"); // 监听按下关闭 Menu.one("click", () => { // @ts-expect-error AgreementMain[0].remove(); reject(); Store.Set("User_OFF_Script", true); }); // 第二次监听开始使用按钮 NextMenu_Default.one("click", async function () { NextMenu_Default.one("click", async function () { Store.Set("User_OFF_Script", false); // @ts-expect-error AgreementMain[0].remove(); resolve(); }); NextMenu_Default.attr("next", ''); AgreementMain.find('#FirstUse').hide(); NextMenu_Default.css({ bottom: 80, left: 363 }); NextMenu_Default.text("开始使用"); AgreementMain.find('#FirstUse_Next').show(); }); Add_HTML_Mian.append(AgreementMain); }); } ShowAgreement().then(resolve).catch(reject); }); } } await Sleep(600); let APP_Main = new ClassAPP_Main; // 用户选择不同意时退出脚本 Store.on("User_OFF_Script", function (key, OidValue, NewValue, remote) { if (!IsDef(NewValue) && NewValue === true) { APP_Main.Main.remove(); } }); await Sleep(200); function APP_Main_Click_Add_Images_itmes_To_Eagle(Event) { if (shake.isset("CLICK_MAIN_BTN_SHAKE_1000MS", 15000)) return; let Matchboards = location.href.match(/boards\/(\d+)/); if (!Matchboards) throw "Not boardsID"; let boardsID = Matchboards ? Matchboards[1] : 0; APP_Main.Agreement().then(async function () { let index = 0; let folderId = ""; await ToEagle.SetNewFolder(document.title).catch(APP_Main.API_Failure).then(data => { folderId = (data === null || data === void 0 ? void 0 : data.data.id) || ""; }); let pin_id = ""; let Finish = false; // "https://api.huaban.com/boards/33440683/pins?limit=100" function ToApiDataAddEagle(API) { return new Promise(async function (resolve, reject) { if (!API && API.includes("undefined")) reject(); let ImagesURLItems = []; await unsafeWindow.fetch(API).then(data => data.json()).then(function (data) { var _a; if (data && !(data === null || data === void 0 ? void 0 : data.pins)) { Finish = true; return resolve(undefined); } ; for (const iterator of data === null || data === void 0 ? void 0 : data.pins) { ImagesURLItems.push({ url: `https://hbimg.huaban.com/${iterator.file.key}`, name: iterator.raw_text, tags: ["花瓣采集", "画板采集"], website: String(iterator.link || location.href), }); } pin_id = (_a = data.pins.pop()) === null || _a === void 0 ? void 0 : _a.pin_id; resolve(pin_id); }); // 偶数时候 延迟减轻对方服务器压力 虽然本来就没影响 减轻Eagle数据库压力 if (index % 2 == 0) { await ToEagle.AddImagesURLAll({ "folderId": folderId, "items": ImagesURLItems }); } ToEagle.AddImagesURLAll({ "folderId": folderId, "items": ImagesURLItems }); }); } for (index; index < 500; index++) { if (Finish) return; let Next = await (index == 0 ? ToApiDataAddEagle(`https://api.huaban.com/boards/${boardsID}/pins?limit=20`) : ToApiDataAddEagle(`https://api.huaban.com/boards/${boardsID}/pins?max=${pin_id}&limit=20`)); await Sleep(300); } }) // 用户不同意协议 结束并且移除按钮 .catch(NProgress.done); } APP_Main.Main.on("click", APP_Main_Click_Add_Images_itmes_To_Eagle); })();