// ==UserScript== // @name 新版度娘加速百度网盘SVIP高速下载 // @namespace momoz // @version 2.9.0 // @author momo // @description 度娘加速新UI:百度网盘SVIP解析高速下载。720px双栏暗色科技风弹窗,小文件解析(1.2G内),支持查询全部任务、复制直链、推送Aria2(免费解析由广告赞助:提交后广告自动打开,15秒后自动提交) // @license MIT // @icon https://nd-static.bdstatic.com/m-static/v20-main/home/img/icon-home-new.b4083345.png // @match *://pan.baidu.com/* // @match *://yun.baidu.com/* // @match *://pan.baidu.com/disk/home* // @match *://yun.baidu.com/disk/home* // @match *://pan.baidu.com/disk/main* // @match *://yun.baidu.com/disk/main* // @match *://pan.baidu.com/s/* // @match *://yun.baidu.com/s/* // @match *://pan.baidu.com/share/* // @match *://yun.baidu.com/share/* // @connect baidu.com // @connect 127.0.0.1 // @connect ty.shzxkq.com // @connect bdb.shzxkq.com // @connect bda.shzxkq.com // @grant GM_addStyle // @run-at document-idle // ==/UserScript== (function () { 'use strict'; var config = { gonggao: "小文件解析(1.2G内):每30分钟5次,解析等待1~18分钟", host_list: { "1": "https://bdb.shzxkq.com", "2": "https://bda.shzxkq.com" }, main_url: "https://bdb.shzxkq.com", bd_password: "asdf", title_name: "度娘加速", file_name: "", savePath: "D:\\Downloads", jsonrpc: "http://localhost:6800/jsonrpc", username: "", tab_id: "1", ua: "netdisk;", workdata: [], file_size: 0, file_icon: "file", mode: "small", // small | big 仅界面展示 last_link: "", batchFiles2: null, // 批量文件(batchNext 用) bdstoken: "", // 百度 bdstoken(batchNext 用) adToken: "" // 广告解锁 token(gate.php 门页) }; /* ========== 新 UI 样式 ========== */ GM_addStyle(` #dnui{--bg:#0E1015;--pop:#131722;--card:#1A2030;--card2:#202839;--line:#262E40;--txt:#F2F4F8;--sub:#8B93A7;--dim:#5C6577;--pri:#8B5CF6;--pri2:#22D3EE;--ok:#34D399;--run:#60A5FA;--wait:#FBBF24;--err:#F87171;--r-lg:18px;--r-md:12px;--r-sm:8px;all:initial} #dnui *,#dnui *::before,#dnui *::after{box-sizing:border-box;margin:0;padding:0} #dnui{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2147483647;display:none;align-items:center;justify-content:center;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--txt);background:rgba(8,10,15,.72);backdrop-filter:blur(3px);-webkit-font-smoothing:antialiased} #dnui.show{display:flex} #dnui .popup{width:min(720px,96vw);max-height:92vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#151A27,#12151E);border:1px solid #283250;border-radius:var(--r-lg);box-shadow:0 32px 90px rgba(0,0,0,.7);animation:dnpop .32s cubic-bezier(.2,.8,.3,1);overflow:hidden} @keyframes dnpop{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}} #dnui .hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 22px 8px} #dnui .hdr-right{display:flex;align-items:center;gap:10px} #dnui .close{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:none;background:transparent;color:var(--sub);cursor:pointer;transition:.15s} #dnui .close:hover{background:rgba(255,255,255,.08);color:#fff} #dnui .close svg{width:14px;height:14px;fill:currentColor} #dnui .brand{display:flex;align-items:center;gap:10px} #dnui .brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--pri),var(--pri2));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(139,92,246,.5)} #dnui .brand .logo svg{width:15px;height:15px;fill:#0E1015} #dnui .brand .t{font-size:15px;font-weight:700;letter-spacing:.3px} #dnui .status{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ok);background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.25);border-radius:999px;padding:3px 9px} #dnui .status .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(52,211,153,.15);animation:dnbreath 2.4s ease-in-out infinite} @keyframes dnbreath{0%,100%{opacity:1}50%{opacity:.35}} #dnui .notice{display:flex;align-items:center;gap:8px;margin:0 22px 8px;padding:6px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);font-size:13px;color:var(--wait);font-weight:600} #dnui .notice svg{width:14px;height:14px;fill:var(--wait);flex:none} #dnui .notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:center} #dnui .tabs{display:flex;gap:4px;margin:0 22px 10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:3px} #dnui .tab{flex:1;text-align:center;padding:7px 0;font-size:12.5px;color:var(--sub);border-radius:8px;cursor:pointer;transition:.18s;user-select:none;background:none;border:none} #dnui .tab:hover{color:var(--txt)} #dnui .tab.on{background:linear-gradient(135deg,rgba(139,92,246,.28),rgba(34,211,238,.16));color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(139,92,246,.22),inset 0 0 0 1px rgba(139,92,246,.45)} #dnui .tab b{font-weight:700} #dnui .pop-main{display:grid;grid-template-columns:270px 1fr;gap:12px;padding:0 20px 14px;min-width:0;overflow:auto} #dnui .pop-main::-webkit-scrollbar{width:6px} #dnui .pop-main::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px} #dnui .col-sub,.dnui .col-task{min-width:0} #dnui .help-pane{display:none;grid-column:1/-1} #dnui.pop-help .help-pane{display:block} #dnui.pop-help .col-sub,#dnui.pop-help .col-task{display:none} #dnui .help-box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:16px} #dnui .help-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;margin-bottom:12px} #dnui .help-title svg{width:16px;height:16px;fill:var(--pri2)} #dnui .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px} #dnui .tool{display:flex;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-md);padding:10px;transition:.18s} #dnui .tool:hover{border-color:rgba(139,92,246,.45)} #dnui .tool .t-ico{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,rgba(139,92,246,.22),rgba(34,211,238,.16));display:flex;align-items:center;justify-content:center;flex:none} #dnui .tool .t-ico svg{width:17px;height:17px;fill:var(--pri2)} #dnui .tool .t-main{flex:1;min-width:0} #dnui .tool .t-name{font-size:13px;font-weight:700} #dnui .tool .t-desc{font-size:11.5px;color:var(--sub);line-height:1.55;margin-top:4px} #dnui .tool .t-desc code{background:#0D1017;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-family:Consolas,monospace;font-size:11px;color:var(--pri2)} #dnui .tool .t-ops{margin-top:7px;display:flex;gap:8px;align-items:center;flex-wrap:wrap} #dnui .mini-btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid rgba(139,92,246,.5);background:rgba(139,92,246,.12);color:var(--txt);transition:.15s} #dnui .mini-btn:hover{background:rgba(139,92,246,.24)} #dnui .mini-btn svg{width:12px;height:12px;fill:currentColor} #dnui .t-note{font-size:10.5px;color:var(--dim);margin-top:6px} #dnui .save-row{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);flex-wrap:wrap} #dnui .save-row label{font-size:12px;color:var(--sub);flex:none} #dnui .save-row input{flex:1;min-width:120px;height:32px;background:#0D1017;border:1px solid var(--line);border-radius:9px;color:var(--txt);font-size:12.5px;padding:0 12px;outline:none;transition:.18s} #dnui .save-row input:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(139,92,246,.18)} #dnui .submit{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:12px;height:100%;display:flex;flex-direction:column} #dnui .file-row{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:9px 10px} #dnui .f-ico{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,rgba(139,92,246,.28),rgba(34,211,238,.2));display:flex;align-items:center;justify-content:center;flex:none} #dnui .f-ico svg{width:17px;height:17px;fill:var(--pri2)} #dnui .f-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} #dnui .f-size{font-size:10.5px;color:var(--dim);margin-top:2px;font-variant-numeric:tabular-nums} #dnui .ad-note{margin-top:18px;padding:14px 12px;border-radius:var(--r-md);background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(34,211,238,.08));border:1px solid rgba(139,92,246,.28);font-size:14px;color:var(--sub);line-height:1.7;text-align:center} #dnui .ad-note b{display:block;font-size:15px;color:var(--txt);margin-bottom:4px} #dnui .ad-tip{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.32);color:#FBBF24;font-size:12.5px;line-height:1.6;text-align:left} #dnui .task-pane{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:12px;height:100%;display:flex;flex-direction:column;min-height:0} #dnui .t-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap} #dnui .t-title{font-size:12.5px;font-weight:600;color:var(--sub);letter-spacing:.5px} #dnui .t-head-btns{display:flex;gap:16px;flex:1;justify-content:flex-end} #dnui .hb{height:32px;flex:1;min-width:0;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--card2);color:var(--txt);padding:0 12px;transition:.15s;text-align:center;white-space:nowrap} #dnui .hb:hover{border-color:var(--pri);color:#fff} #dnui .hb:disabled{opacity:.55;cursor:not-allowed;filter:saturate(.55)} #dnui .hb.primary{border:none;color:#0E1015;background:linear-gradient(135deg,var(--pri),var(--pri2));font-weight:700;box-shadow:0 3px 12px rgba(139,92,246,.35)} #dnui .hb.primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(139,92,246,.5)} #dnui .hb.grad{border:none;color:#0E1015;background:linear-gradient(135deg,var(--pri2),var(--pri));font-weight:700;box-shadow:0 3px 12px rgba(34,211,238,.3)} #dnui .hb.grad:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(34,211,238,.45)} #dnui .batch-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap} #dnui .batch-bar[hidden]{display:none} #dnui .b-info{font-size:11.5px;color:var(--ok);font-weight:600} #dnui .b-ops{display:flex;gap:8px;margin-left:auto} #dnui .task-list{flex:1;overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--line) transparent} #dnui .task-list::-webkit-scrollbar{width:6px} #dnui .task-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px} #dnui .task{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;margin-bottom:8px} #dnui .task:last-child{margin-bottom:0} #dnui .st{width:9px;height:9px;border-radius:50%;flex:none} #dnui .st.done{background:var(--ok);box-shadow:0 0 0 3px rgba(52,211,153,.14)} #dnui .st.run{background:var(--run);box-shadow:0 0 0 3px rgba(96,165,250,.14);animation:dnpulse 1.6s infinite} #dnui .st.wait{background:var(--wait);box-shadow:0 0 0 3px rgba(251,191,36,.14)} #dnui .st.err{background:var(--err);box-shadow:0 0 0 3px rgba(248,113,113,.14)} @keyframes dnpulse{0%,100%{opacity:1}50%{opacity:.45}} #dnui .t-body{flex:1;min-width:0} #dnui .t-fn{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} #dnui .t-st{font-size:10.5px;color:var(--sub);margin-top:2px} #dnui .t-ops{display:flex;gap:6px;flex:none} #dnui .op{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--sub);background:none;border:1px solid var(--line);border-radius:7px;padding:5px 8px;cursor:pointer;transition:.15s} #dnui .op:hover{color:var(--txt);border-color:var(--pri2);background:rgba(34,211,238,.06)} #dnui .op svg{width:11px;height:11px;fill:currentColor} #dnui .op.primary{color:var(--txt);border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.12)} #dnui .op.primary:hover{background:rgba(139,92,246,.2)} #dnui .op.disabled{opacity:.35;pointer-events:none} #dnui .empty{padding:18px 0;text-align:center;color:var(--dim);font-size:12px;border:1px dashed var(--line);border-radius:var(--r-md)} #dnui .page-tabs{display:flex;gap:4px;margin-top:8px;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:3px} #dnui .ptab{flex:1;text-align:center;padding:6px 0;font-size:12px;color:var(--sub);border-radius:6px;cursor:pointer;transition:.15s;user-select:none;background:none;border:none} #dnui .ptab:hover{color:var(--txt)} #dnui .ptab.on{background:linear-gradient(135deg,rgba(139,92,246,.26),rgba(34,211,238,.14));color:#fff;font-weight:600;box-shadow:0 2px 6px rgba(139,92,246,.2),inset 0 0 0 1px rgba(139,92,246,.4)} #dnui .pane-tutorial{margin-top:8px} #dnui .toast{position:fixed;left:50%;top:50%;transform:translateX(-50%) translateY(-50%) translateY(10px);background:#232B3D;border:1px solid rgba(139,92,246,.35);color:var(--txt);font-size:13px;padding:10px 18px;border-radius:999px;opacity:0;transition:.3s;pointer-events:none;z-index:200;box-shadow:0 14px 34px rgba(0,0,0,.6);max-width:86vw} #dnui .toast.show{opacity:1;transform:translateX(-50%) translateY(-50%)} @media(max-width:720px){#dnui .pop-main{grid-template-columns:1fr}#dnui .col-task{order:-1}} `); /* ========== 工具函数 ========== */ function toast(msg, ms) { var el = document.getElementById('dnToast'); if (!el) { // 弹窗未打开时兜底:顶部浮动提示,避免"点击没反应" var old = document.getElementById('dnFloatTip'); if (old) old.remove(); var d = document.createElement('div'); d.id = 'dnFloatTip'; d.style.cssText = 'position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#232B3D;border:1px solid rgba(139,92,246,.55);color:#F2F4F8;font-size:13px;padding:10px 18px;border-radius:999px;z-index:2147483647;box-shadow:0 12px 34px rgba(0,0,0,.55);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;max-width:82vw;text-align:center'; d.textContent = msg; document.body.appendChild(d); setTimeout(function () { d.remove(); }, typeof ms === 'number' ? ms : 2600); return; } el.textContent = msg; el.classList.add('show'); clearTimeout(el._t); el._t = setTimeout(function () { el.classList.remove('show') }, typeof ms === 'number' ? ms : 2000); } function formatBytes(a, b) { b = b || 2; if (0 === a) return "0 B"; var c = 0 > b ? 0 : b, d = Math.floor(Math.log(a) / Math.log(1024)); return parseFloat((a / Math.pow(1024, d)).toFixed(c)) + " " + ["B", "KB", "MB", "GB", "TB"][d]; } function copyText(t) { var ta = document.createElement('textarea'); ta.style.position = 'fixed'; ta.style.opacity = 0; ta.value = t; document.body.appendChild(ta); ta.select(); try { document.execCommand('copy'); } catch (e) { } document.body.removeChild(ta); } function getSelectedList() { var list = {}; var arr = []; try { arr = require('system-core:context/context.js').instanceForSystem.list.getSelected(); } catch (e) { var vue = document.querySelector('.wp-s-core-pan'); if (vue && vue.__vue__ && vue.__vue__.selectedList) { arr = vue.__vue__.selectedList; } } if (!arr || !arr.forEach) return list; arr.forEach(function (el) { if (el && el.fs_id) list[el.fs_id] = el; }); return list; } function getUsernameAndToken() { var html = document.documentElement.innerHTML; var m = html.match(/locals\.mset\(([\s\S]*?)\);/); if (m) { try { var d = JSON.parse(m[1]); return { username: d.username, bdstoken: d.bdstoken }; } catch (e) { } } m = html.match(/window\.locals\s*=\s*([\s\S]*?);/); if (m) { try { var d2 = JSON.parse(m[1]); return { username: d2.userInfo.username, bdstoken: d2.userInfo.bdstoken }; } catch (e) { } } return { username: "", bdstoken: "" }; } /* ========== 广告解锁(HillTopAds 门页) ========== */ function genAdToken() { var chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; var s = ''; for (var i = 0; i < 32; i++) s += chars.charAt(Math.floor(Math.random() * chars.length)); return s; } // 查询 30 分钟免看状态:该 IP 近期解锁过广告则直接提交,无需再开广告(2.8.1) function canBypassAd(cb) { var xhr = new XMLHttpRequest(); xhr.open('GET', config.main_url + '/ad_status.php', true); xhr.timeout = 8000; xhr.onload = function () { try { var r = JSON.parse(xhr.responseText); cb && cb(r.bypass === 1); } catch (e) { cb && cb(false); } }; xhr.onerror = function () { cb && cb(false); }; xhr.send(); } // 获取广告 Direct URL(服务端 ad_url.php 读 hta-7577533.txt,会话内缓存)(2.8.4) var adUrlCache = null; function getAdUrl(cb) { if (adUrlCache) { cb && cb(adUrlCache); return; } var xhr = new XMLHttpRequest(); xhr.open('GET', config.main_url + '/ad_url.php', true); xhr.timeout = 8000; xhr.onload = function () { try { var r = JSON.parse(xhr.responseText); if (r && r.ad_url && r.ad_url !== 'about:blank') { adUrlCache = r.ad_url; cb && cb(adUrlCache); return; } } catch (e) { } cb && cb(null); }; xhr.onerror = function () { cb && cb(null); }; xhr.send(); } // 一次点击全自动(2.8.4):同时打开广告窗 + 门页(auto),倒计时结束自动解锁提交,无需再点任何按钮 function adUnlock(cb) { var token = genAdToken(); config.adToken = token; getAdUrl(function (adUrl) { // 先开广告窗(Direct URL 按访问计费),再开门页 → 门页在活动标签,广告留后台加载 if (adUrl) { try { window.open(adUrl, '_blank'); } catch (e) { } } try { window.open(config.main_url + '/gate.php?token=' + token + '&auto=1', '_blank'); } catch (e) { } }); var tries = 0; (function poll() { if (tries > 60) { toast('广告解锁超时,请重试'); cb && cb(false); return; } var xhr = new XMLHttpRequest(); xhr.open('GET', config.main_url + '/check_unlock.php?token=' + token, true); xhr.onload = function () { try { var r = JSON.parse(xhr.responseText); if (r.status === 1) { cb && cb(true); return; } tries++; setTimeout(poll, 2000); } catch (e) { tries++; setTimeout(poll, 2000); } }; xhr.onerror = function () { tries++; setTimeout(poll, 2000); }; xhr.send(); })(); } /* ========== 弹窗 HTML ========== */ var SVGFILE = ''; var SVGA2 = ''; var SVGCopy = ''; var SVGOpen = ''; var UI = { popup: function () { return `