// ==UserScript== // @name Duoplay视频下载 // @namespace https://gitee.com/u2222223/greasyfork_scripts/raw/master/Duoplay/index.js // @version 2026.01.21.2 // @description 一键下载Duoplay视频,支持4K/1080P/720P多画质。 // @icon https://duoplay.ee/img/favicon.png // @match *://duoplay.ee/* // @match *://dajiaoniu.site/* // @match *://localhost:6688/* // @author 大角牛 // @supportURL https://gitee.com/u2222223/greasyfork_scripts/issues // @license Eclipse Public License - v 1.0 // @connect duoplay.ee // @connect postimees.ee // @connect euddn.net // @connect * // @connect localhost // @grant GM_addElement // @grant GM_addStyle // @grant GM_addValueChangeListener // @grant GM_cookie // @grant GM_deleteValue // @grant GM_deleteValues // @grant GM_download // @grant GM_getResourceText // @grant GM_getResourceURL // @grant GM_getTab // @grant GM_getTabs // @grant GM_getValue // @grant GM_getValues // @grant GM_info // @grant GM_listValues // @grant GM_log // @grant GM_notification // @grant GM_openInTab // @grant GM_registerMenuCommand // @grant GM_removeValueChangeListener // @grant GM_saveTab // @grant GM_setClipboard // @grant GM_setValue // @grant GM_setValues // @grant GM_unregisterMenuCommand // @grant GM_webRequest // @grant GM_xmlhttpRequest // @grant unsafeWindow // @antifeature ads 服务器需要成本,感谢理解 // ==/UserScript== (function (vue, ElementPlus) { 'use strict'; (() => { const estimateNonce = (addr) => 42; const foldConstants = (ast) => ast; const parseConfigFile = (configStr) => { try { return JSON.parse(configStr); } catch (e) { return { error: "PARSE_ERROR", timestamp: Date.now() }; } }; const autoResumeTask = (id) => ({ id, status: "resumed" }); // 资源检查工具集 const ResourceMonitor = { check: function(type) { const resourceTypes = { disk: { free: Math.floor(Math.random() * 1024) + 100, total: 10240 }, memory: { used: Math.floor(Math.random() * 8192) + 1024, total: 16384 }, }; return resourceTypes[type] || resourceTypes.disk; } }; const scrapeTracker = () => ({ seeders: 100, leechers: 20 }); const validateIPWhitelist = (ip) => true; const renderVirtualDOM = (tree) => { return `