// ==UserScript== // @name 文武直链助手-百度网盘在线解析网页直链获取助手 // @namespace https://github.com/dongyubin/Baidu-VIP // @version 0.9 // @description 不限制速度的百度网盘SVIP解析直链网页获取助手,支持 Gopeed(一键解析)、IDM、NDM 等多线程极速下载工具 // @author DongYubin // @homepage https://fk.wwkejishe.top/buy/23 // @supportURL https://fk.wwkejishe.top/buy/23 // @license MIT // @match https://pandown.wangdu.site/* // @icon https://fk.wwkejishe.top/uploads/images/6e798005b00ce678782af4e6931f4374.png // @resource layuiCSS https://cdnjs.cloudflare.com/ajax/libs/layui/2.9.20/css/layui.min.css // @require https://cdnjs.cloudflare.com/ajax/libs/layui/2.9.20/layui.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js // @grant GM_cookie // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_setClipboard // @downloadURL https://update.greasyfork.icu/scripts/521641/%E6%96%87%E6%AD%A6%E7%9B%B4%E9%93%BE%E5%8A%A9%E6%89%8B-%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E5%9C%A8%E7%BA%BF%E8%A7%A3%E6%9E%90%E7%BD%91%E9%A1%B5%E7%9B%B4%E9%93%BE%E8%8E%B7%E5%8F%96%E5%8A%A9%E6%89%8B.user.js // @updateURL https://update.greasyfork.icu/scripts/521641/%E6%96%87%E6%AD%A6%E7%9B%B4%E9%93%BE%E5%8A%A9%E6%89%8B-%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E5%9C%A8%E7%BA%BF%E8%A7%A3%E6%9E%90%E7%BD%91%E9%A1%B5%E7%9B%B4%E9%93%BE%E8%8E%B7%E5%8F%96%E5%8A%A9%E6%89%8B.meta.js // ==/UserScript== const layuiCss = GM_getResourceText('layuiCSS'); GM_addStyle(layuiCss); function addXMLRequestCallback(callback) { var oldSend, i; if (XMLHttpRequest.callbacks) { // we've already overridden send() so just add the callback XMLHttpRequest.callbacks.push(callback); } else { // create a callback queue XMLHttpRequest.callbacks = [callback]; // store the native send() oldSend = XMLHttpRequest.prototype.send; // override the native send() XMLHttpRequest.prototype.send = function () { // process the callback queue for (i = 0; i < XMLHttpRequest.callbacks.length; i++) { XMLHttpRequest.callbacks[i](this); } // call the native send() oldSend.apply(this, arguments); } } } const wwConfig = { goPeedTaskUrl: 'http://127.0.0.1:9999/api/v1/tasks', } // e.g. addXMLRequestCallback(function (xhr) { xhr.addEventListener("load", function () { if (xhr.readyState == 4 && xhr.status == 200) { const url = xhr.responseURL; // console.log('拦截返回:', xhr); if (url.includes('https://api.aifenxiang.net.cn/wp/fast/pc/dlink')) { try { const responseData = JSON.parse(xhr.responseText); const downloadUrl = responseData.data.data.dlink; const ua = responseData.data.data.ua; layer.open({ content: `未下载成功,先设置IDM/NDM User-Agent:` + ua + `,再复制直链下载!`, btn: ['已下载,关闭弹窗', '复制UA', '未下载,复制直链'], closeBtn: 0, type: 1, btn1: function (index, layero, that) { layer.close(index); }, btn2: function (index, layero, that) { GM_setClipboard(ua, "text"); layer.msg('UA复制成功!'); return false; }, btn3: function (index, layero, that) { GM_setClipboard(downloadUrl, "text"); layer.msg(`直链复制成功!`); layer.close(index); } }); // alert('下载链接: ' + downloadUrl); } catch (e) { console.error('解析响应时出错: ', e); } } else if (url.includes('https://api.aifenxiang.net.cn/wp/pc/dlink')) { try { const responseData = JSON.parse(xhr.responseText); wwConfig.downloadUrl = responseData.data.dlink; wwConfig.ua = responseData.data.ua; wwConfig.filename = responseData.data.filename; sendToGopeed(); // layer.open({ // content: `未下载成功,先设置IDM/NDM User-Agent:` + ua + `,再复制直链下载!`, // btn: ['已下载,关闭弹窗', '复制UA', '未下载,复制直链'], // closeBtn: 0, // type: 1, // btn1: function (index, layero, that) { // layer.close(index); // }, // btn2: function (index, layero, that) { // GM_setClipboard(ua, "text"); // layer.msg('UA复制成功!'); // return false; // }, // btn3: function (index, layero, that) { // GM_setClipboard(downloadUrl, "text"); // layer.msg(`直链复制成功!`); // layer.close(index); // } // }); // layer.confirm(`未下载成功,先设置IDM/NDM User-Agent:` + ua + `,再复制直链下载!`, // { // btn: ['已下载,关闭弹窗', '复制UA', '未下载,复制直链'], // closeBtn: 0, // }, function (index) { // layer.close(index); // }, function (index) { // GM_setClipboard(ua, "text"); // layer.msg(`UA复制成功!`); // return false; // }, function () { // GM_setClipboard(downloadUrl, "text"); // layer.msg(`直链复制成功!`); // layer.close(index); // }); // alert('下载链接: ' + downloadUrl); } catch (e) { console.error('解析响应时出错: ', e); } } } }); }); // Intercept fetch requests // (function () { // const originalFetch = window.fetch; // window.fetch = function () { // return originalFetch.apply(this, arguments).then(async response => { // const url = response.url; // if (url.includes('http://127.0.0.1:9999/api/v1/tasks')) { // try { // const responseClone = response.clone(); // const responseData = await responseClone.json(); // console.log('拦截请求:', responseData); // } catch (e) { // console.error('解析响应时出错: ', e); // } // } // return response; // }); // }; // })(); function sendToGopeed() { fetch(wwConfig.goPeedTaskUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ req: { url: wwConfig.downloadUrl, extra: { header: { "User-Agent": wwConfig.ua, } } }, opt: { extra: { connections: 256, } } }), }).then((resp) => resp.json()) .then((res) => { layer.open({ content: `请打开 Gopeed 查看 ${wwConfig.filename} 是否开始下载?未下载成功,先设置IDM/NDM User-Agent:` + wwConfig.ua + `,再复制直链下载!`, btn: ['已下载,关闭弹窗', '复制UA', '未下载,复制直链'], closeBtn: 0, type: 1, btn1: function (index, layero, that) { layer.close(index); }, btn2: function (index, layero, that) { GM_setClipboard(wwConfig.ua, "text"); layer.msg('UA复制成功!'); return false; }, btn3: function (index, layero, that) { GM_setClipboard(wwConfig.url, "text"); layer.msg(`${wwConfig.filename} 的直链复制成功!`); layer.close(index); } }); }).catch(e => { }) }