// const.ts var accessTokenInfo = { "expires_in": 31536e3, "access_token": "24.e7f0cd92f73198efe99b8ccb4466f045.2592000.1744250279.282335-23610200", "session_secret": "", "session_key": "", "scope": "basic netdisk" }; var getUrlParams = (params) => { const body = new URLSearchParams(); for (const [key, value] of Object.entries(params)) { body.append(key, value); } return body; }; var const_default = accessTokenInfo; // cookieUtil.ts var CookieUtil = class _CookieUtil { // 静态属性,用于存储单例实例 static instance = null; accessTokenInfo = { "expires_in": 31536e3, "access_token": "24.e7f0cd92f73198efe99b8ccb4466f045.2592000.1744250279.282335-23610200", "session_secret": "", "session_key": "", "scope": "basic netdisk", app_id: "250528", cookie: `BIDUPSID=B6F89C8A6AD149BCDC6FF40289C98EEA; PSTM=1719579347; PANWEB=1; Hm_lvt_7a3960b6f067eb0085b7f96ff5e660b0=1719583693,1719754941; BAIDUID=10DC30A9D8497854D8275A9855AA40A6:SL=0:NR=10:FG=1; H_WISE_SIDS_BFESS=60447_60575_60600; csrfToken=UG2bfMChS2_3SL_SPVH_hKvy; Hm_lvt_fa0277816200010a74ab7d2895df481b=1741096444; Hm_lpvt_fa0277816200010a74ab7d2895df481b=1741096444; HMACCOUNT=EDFC1163C2009122; H_PS_PSSID=61027_62277_62325_62336_62347_62372_62243_62390_62420_62423_62474_62484_62499_62493_62522_62457_62455_62453_62451_62568_62610; BDSFRCVID=EB-OJexroGWT0gjJdKLdMO_dgSNbUdrTDYrEjGc3VtzSGYLVd4SGEG0Pts1-dEub6j30ogKKLmOTHpKF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tRAOoC_-tDvDqTrP-trf5DCShUFsXTblB2Q-XPoO3M3xSlv4y4b8j4-kyhOk2M5f5mkf3fbgy4op8P3y0bb2DUA1y4vp-Jo7bmTxoUJ2-KDVeh5Gqq-KXU4ebPRiWPr9Qgbj_43Jtq4KO4bGQq5lDIuTXqO30ptJ06nhVn0MBCK0hD89DjKKD6PVKgTa54cbb4o2WbCQQnC28pcN2b5oQp-734RHBtJqBC74aPbwahQbeq06-lOUWJDkXpJvQnJjt2JxaqRCbtj1fq5jDh3MKToDb-oteltHB2Oy0hvcBn6cShnxjJJjDx7XylOt0ljPt-jr24bS3U8MEtbIe-t2XjQhDNL8q6_qJbCsQnj8HJoHjJbGq4bohjPkLmc9BtQO-DOx-M-M5bckehvsbMccBP0s0PTaL43HQgnkQq5_3b85S4bu0UJZXhKOjbbx0x-jLTneo66e345DMRFRD-nJyUPThtnnBnOi3H8HL4nv2JcJbM5m3x6qLTKkQN3T-PKO5bRu_CcJ-J8XMK8mjTjP; newlogin=1; Hm_lvt_182d6d59474cf78db37e0b2248640ea5=1742211139; H_WISE_SIDS=61027_62277_62325_62336_62347_62372_62243_62390_62420_62423_62474_62484_62499_62493_62522_62457_62455_62453_62451_62568_62610; BDUSS=HB1TDFqeGVLTWZhcURSM015WmJrVi1XaWdqbkdSUWVmaH5mc2daSzJIeG5aUUJvSVFBQUFBJCQAAAAAAAAAAAEAAAAmJicXaG5qaWFuYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfY2Gdn2NhnZ; BDUSS_BFESS=HB1TDFqeGVLTWZhcURSM015WmJrVi1XaWdqbkdSUWVmaH5mc2daSzJIeG5aUUJvSVFBQUFBJCQAAAAAAAAAAAEAAAAmJicXaG5qaWFuYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfY2Gdn2NhnZ; STOKEN=4b412d30af62a38ce1b769718dbf216cbd0ed032e38e2ab282aea36707e93a20; Hm_lvt_bc5920843408306f8b6fc088319384ce=1742264429; Hm_lpvt_bc5920843408306f8b6fc088319384ce=1742264434; BAIDUID_BFESS=10DC30A9D8497854D8275A9855AA40A6:SL=0:NR=10:FG=1; BDSFRCVID_BFESS=EB-OJexroGWT0gjJdKLdMO_dgSNbUdrTDYrEjGc3VtzSGYLVd4SGEG0Pts1-dEub6j30ogKKLmOTHpKF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tRAOoC_-tDvDqTrP-trf5DCShUFsXTblB2Q-XPoO3M3xSlv4y4b8j4-kyhOk2M5f5mkf3fbgy4op8P3y0bb2DUA1y4vp-Jo7bmTxoUJ2-KDVeh5Gqq-KXU4ebPRiWPr9Qgbj_43Jtq4KO4bGQq5lDIuTXqO30ptJ06nhVn0MBCK0hD89DjKKD6PVKgTa54cbb4o2WbCQQnC28pcN2b5oQp-734RHBtJqBC74aPbwahQbeq06-lOUWJDkXpJvQnJjt2JxaqRCbtj1fq5jDh3MKToDb-oteltHB2Oy0hvcBn6cShnxjJJjDx7XylOt0ljPt-jr24bS3U8MEtbIe-t2XjQhDNL8q6_qJbCsQnj8HJoHjJbGq4bohjPkLmc9BtQO-DOx-M-M5bckehvsbMccBP0s0PTaL43HQgnkQq5_3b85S4bu0UJZXhKOjbbx0x-jLTneo66e345DMRFRD-nJyUPThtnnBnOi3H8HL4nv2JcJbM5m3x6qLTKkQN3T-PKO5bRu_CcJ-J8XMK8mjTjP; ndut_fmt=4AED84C3D5C763CC7467C0BD21B7059718FB121D7685531B0B05A7947CD6E542; ab_sr=1.0.1_MWQ5NTY4MTE4YTU1OTJiNmI0YmUxMDAzNWY1NTkyZjkzZGNkYzBjNDg2NWYxODdhNTM0Zjk4NDNlNzIwNmJhNWFjNTVmYzlhMjllZDQ1YzBhODZkMjFkZjNmODk1YWRkYjU4ZWI4OGQ5ZTY5Yzg1YjU0YTEyNzE4ZTZmZGYyOWYzZTYzZWYwYmFiODVhOWIwMWZjMjUyMDg1ZjExYWE0Y2QzNDU0MWY3MGRiOGQ0NDk2MjZlYWY3NDM2YmI4NmNlNzUxMmEzYjEyOWY5MDI5NDNkMmY4YWUxZDJkNDUwNGI=; PANPSC=12091468029218708382%3AAuI6D6iGxsvfqD2oGDJz%2FlcS2d9ns3O52KR9sgxqNvJDnBUTmlU39wjHRUw%2FZR6kz81ttRoL0tCAzpMjKfHvSrz7Cgwm46ULLjHyseP5LOc2jyb7JodIivKBB5%2BWSCTpbaC532AuNi3w0iRW66wpcaOpfVD7rGCOIND%2Ba86tsPJVcd75GMrlL3ggdH3Ht58%2BGZF3KerqQjL6l%2B17QGFqtw%3D%3D; Hm_lpvt_182d6d59474cf78db37e0b2248640ea5=1742385365` }; constructor() { if (_CookieUtil.instance) { return _CookieUtil.instance; } _CookieUtil.instance = this; } // 静态方法,用于获取单例实例 static getInstance() { if (!_CookieUtil.instance) { _CookieUtil.instance = new _CookieUtil(); } return _CookieUtil.instance; } getHeaders = () => { return { "Content-Type": "application/x-www-form-urlencoded", Host: "pan.baidu.com", Origin: "https://pan.baidu.com", Referer: "https://pan.baidu.com/disk/main", "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36", "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "same-origin", "X-Requested-With": "XMLHttpRequest", "sec-ch-ua": `"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"`, "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "Windows", "Cookie": this.accessTokenInfo.cookie }; }; setCookie = ({ cookie: cookie2, accessToken }) => { this.accessTokenInfo.access_token = accessToken; this.accessTokenInfo.cookie = cookie2; }; }; // getBdstoken.ts var url = `http://pan.baidu.com/api/gettemplatevariable?clienttype=0&app_id=250528&web=1&fields=[%22bdstoken%22]`; async function getInfo() { const cookieUtilInstance = CookieUtil.getInstance(); const headers = cookieUtilInstance.getHeaders(); const res = await fetch(url, { headers }); const data = await res.json(); return data?.result?.bdstoken; } // getDpLogId.ts var DpLogIdUtil = class _DpLogIdUtil { // 静态属性,用于存储单例实例 static instance = null; // 实例属性 sessionId = 0; // 会话ID,用于标识当前会话 userId = ""; // 用户ID,用于标识用户 _countId = 0; // 计数器ID,用于生成唯一的日志ID client = ""; // 客户端标识 // 私有化构造函数,防止外部直接实例化 constructor() { if (_DpLogIdUtil.instance) { return _DpLogIdUtil.instance; } this.sessionId = this.getRandomInt(6); this.userId = "00" + this.getRandomInt(8); this._countId = 0; this.client = ""; _DpLogIdUtil.instance = this; } // 静态方法,用于获取单例实例 static getInstance() { if (!_DpLogIdUtil.instance) { _DpLogIdUtil.instance = new _DpLogIdUtil(); } return _DpLogIdUtil.instance; } // 生成指定位数的随机整数 getRandomInt = function(t) { return Math.floor((9 * Math.random() + 1) * Math.pow(10, t - 1)); }; // 将数字补足指定位数,不足部分用0填充 prefixInteger = function(t, e) { t += ""; for (var n = new Array(e - t.length), i = n.length, r = 0; r < i; r++) n[r] = "0"; return n.join("") + t; }; // 获取并递增计数器ID,确保ID在0到9999之间循环 getCountId = function() { return this._countId < 9999 ? this._countId += 1 : this._countId = 0, this.prefixInteger(this._countId, 4); }; // 验证用户ID是否为10位 validateUk = function(t) { return 10 === (t + "").length; }; // 生成完整的日志ID getDpLogId = function() { var e = this.userId; return "" + this.client + this.sessionId + e + this.getCountId(); }; // 从URL中提取日志ID,如果不存在则生成一个新的日志ID getDpLogIdByUrl = function(t) { var e = t.match(/dp-logid=(\d+)/); return e && e[1] ? e[1] : this.getDpLogId(); }; // 向URL中添加日志ID参数 addDpLogId = function(t, e, n) { if (/dp-logid=\d+/.test(t)) return t; var i = n || this.getDpLogId(e); return t += /\?/.test(t) ? "&" : "?", t + "dp-logid=" + i; }; }; // queryMagnetinfo.ts var { access_token } = const_default; async function getMagnetInfo(link, savePath) { let bdstoken2 = await getInfo(); let dpLogId2 = DpLogIdUtil.getInstance().getDpLogId(); const url2 = `https://pan.baidu.com/rest/2.0/services/cloud_dl?clienttype=0&app_id=250528&web=1&dp-logid=${dpLogId2}&bdstoken=${bdstoken2}`; const cookieUtilInstance = CookieUtil.getInstance(); const headers = cookieUtilInstance.getHeaders(); const params = { method: "query_magnetinfo", app_id: 250528, save_path: savePath, type: 4, source_url: link }; const res = await fetch(url2, { method: "POST", headers, body: getUrlParams(params) }); const data = await res.json(); return data?.total || 0; } // offDown.ts var bdstoken = ""; var dpLogId = ""; var dpLogIdUtil = DpLogIdUtil.getInstance(); function generateSelectedIdx(total) { return [...Array(total).keys()].map((i) => i + 1); } function getRandomNumberBetween(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function randomDelay(min = 2e3, max = 4e3) { const delay = getRandomNumberBetween(min, max); console.log(`\u7B49\u5F85 ${delay} \u6BEB\u79D2...`); return sleep(delay); } function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } async function down(link, savePath = "/movie/2025") { const cookieUtilInstance = CookieUtil.getInstance(); bdstoken = await getInfo(); dpLogId = dpLogIdUtil?.getDpLogId(); const url2 = `https://pan.baidu.com/rest/2.0/services/cloud_dl?clienttype=0&app_id=250528&web=1&dp-logid=${dpLogId}&bdstoken=${bdstoken}`; const headers = cookieUtilInstance.getHeaders(); const fileTotal = await getMagnetInfo(link, savePath); randomDelay(2e3, 4e3); const params = { method: "add_task", app_id: 250528, save_path: savePath, selected_idx: generateSelectedIdx(fileTotal).join(","), task_from: 0, t: (/* @__PURE__ */ new Date()).getTime(), type: 4, source_url: link }; console.log(params); try { const res = await fetch(url2, { method: "POST", headers, body: getUrlParams(params) }); if (!res.ok) { throw new Error(`HTTP error! status: ${res.status}`); } const data = await res.json(); console.log(data); return data; } catch (error) { console.error("Fetch error:", error); } } var offDown_default = { down, CookieUtil, randomDelay }; export { offDown_default as default };