Skip to content

Commit d484095

Browse files
author
Taois
committed
feat: 完美
1 parent 4c6ca9b commit d484095

File tree

5 files changed

+826
-92
lines changed

5 files changed

+826
-92
lines changed

drpy-node-bundle/libs/localDsCore.bundled.js

Lines changed: 68 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -105778,39 +105778,6 @@ req$1.interceptors.request.use(async (config) => {
105778105778
* - 自动继承系统代理
105779105779
*/
105780105780
const reqs = new axios$1.create({ httpsAgent: new https.Agent({ rejectUnauthorized: false }) });
105781-
reqs.interceptors.request.use(async (config) => {
105782-
if (!config.url) return config;
105783-
try {
105784-
const proxy = await getSystemProxy();
105785-
if (proxy) {
105786-
config.httpsAgent = new import_dist$1.HttpsProxyAgent(proxy);
105787-
config.proxy = false;
105788-
return config;
105789-
}
105790-
let fullUrl = config.url;
105791-
if (config.baseURL && !/^https?:\/\//i.test(fullUrl)) try {
105792-
fullUrl = new URL(fullUrl, config.baseURL).toString();
105793-
} catch (e) {}
105794-
const urlObj = new URL(fullUrl);
105795-
const hostname = urlObj.hostname;
105796-
if (!hostname || /^(\d{1,3}\.){3}\d{1,3}$/.test(hostname) || hostname === "localhost") return config;
105797-
const ip = await resolveDoh(hostname);
105798-
if (ip && ip !== hostname) {
105799-
if (!config.headers) config.headers = {};
105800-
let hasHost = false;
105801-
const keys = Object.keys(config.headers);
105802-
for (const k of keys) if (k.toLowerCase() === "host") {
105803-
hasHost = true;
105804-
break;
105805-
}
105806-
if (!hasHost) config.headers.Host = hostname;
105807-
urlObj.hostname = ip;
105808-
config.url = urlObj.toString();
105809-
if (config.baseURL) delete config.baseURL;
105810-
}
105811-
} catch (e) {}
105812-
return config;
105813-
});
105814105781
//#endregion
105815105782
//#region ../utils/pan/ali.js
105816105783
const apiUrl = "https://api.aliyundrive.com";
@@ -114530,15 +114497,6 @@ var QuarkHandler = class {
114530114497
* @returns {Promise<void>}
114531114498
*/
114532114499
async initQuark() {
114533-
if (this.token) {
114534-
let exp = JSON.parse(import_crypto_js.default.enc.Base64.parse(this.token.split(".")[1]).toString(import_crypto_js.default.enc.Utf8));
114535-
let now = Math.floor(Date.now() / 1e3);
114536-
if (exp.exp < now) console.log("登录状态已过期,重新登录,请及时更换Token");
114537-
else {
114538-
console.log("登录成功,继续使用,可使用时间截止到:" + (/* @__PURE__ */ new Date(exp.exp * 1e3)).toLocaleString());
114539-
console.log("QuarkTV token获取成功:" + this.token);
114540-
}
114541-
}
114542114500
if (this.cookie) console.log("cookie 获取成功");
114543114501
else console.log("cookie 获取失败");
114544114502
}
@@ -114676,13 +114634,13 @@ var QuarkHandler = class {
114676114634
Object.assign(headers, { Cookie: cookie });
114677114635
method = method || "post";
114678114636
let link = `${this.apiUrl}/${url}`;
114679-
const resp = method === "get" ? await req$1.get(link, { headers }).catch((err) => {
114637+
const resp = method === "get" ? await reqs.get(link, { headers }).catch((err) => {
114680114638
console.error(err.message);
114681114639
return err.response || {
114682114640
status: 500,
114683114641
data: {}
114684114642
};
114685-
}) : await req$1.post(link, data, { headers }).catch((err) => {
114643+
}) : await reqs.post(link, data, { headers }).catch((err) => {
114686114644
console.error(err.message);
114687114645
return err.response || {
114688114646
status: 500,
@@ -114976,40 +114934,6 @@ var QuarkHandler = class {
114976114934
const data = method + "&" + pathname + "&" + timestamp + "&" + key;
114977114935
return import_crypto_js.default.SHA256(data).toString();
114978114936
}
114979-
async refreshToken() {
114980-
let data = JSON.stringify({
114981-
"req_id": reqId,
114982-
"app_ver": this.conf.appVer,
114983-
"device_id": deviceID,
114984-
"device_brand": "OPPO",
114985-
"platform": "tv",
114986-
"device_name": "PCRT00",
114987-
"device_model": "PCRT00",
114988-
"build_device": "aosp",
114989-
"build_product": "PCRT00",
114990-
"device_gpu": "Adreno%20(TM)%20640",
114991-
"activity_rect": "%7B%7D",
114992-
"channel": this.conf.channel,
114993-
"refresh_token": this.token
114994-
});
114995-
let config = {
114996-
method: "POST",
114997-
url: "http://api.extscreen.com/quarkdrive",
114998-
headers: {
114999-
"User-Agent": "Mozilla/5.0 (Linux; U; Android 7.1.2; zh-cn; PCRT00 Build/N2G47O) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1",
115000-
"Connection": "Keep-Alive",
115001-
"Accept-Encoding": "gzip",
115002-
"Content-Type": "application/json",
115003-
"Cookie": "sl-session=VIaxTAKF8mdJBhU2uda0zA=="
115004-
},
115005-
data
115006-
};
115007-
let req = await axios.request(config);
115008-
if (req.status === 200) {
115009-
ENV.set("uc_token_cookie", req.data.data.refresh_token);
115010-
return await this.getDownload(shareId, stoken, fileId, fileToken, clean);
115011-
}
115012-
}
115013114937
async getDownload(shareId, stoken, fileId, fileToken, clean) {
115014114938
await this.initQuark();
115015114939
if (!this.saveFileIdCaches[fileId]) {
@@ -115109,8 +115033,72 @@ var QuarkHandler = class {
115109115033
}
115110115034
return null;
115111115035
}
115036+
async getToken() {
115037+
let t = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
115038+
let data = JSON.stringify({
115039+
"conversation_id": "300000" + t,
115040+
"conversation_type": 3,
115041+
"msg_id": t + "000"
115042+
});
115043+
let config = {
115044+
method: "POST",
115045+
url: "https://drive-social-api.quark.cn/1/clouddrive/chat/conv/file/acquire_dl_token?pr=ucpro&fr=pc&sys=darwin&ve=3.19",
115046+
headers: {
115047+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/3.23.2 Chrome/112.0.5615.165 Electron/24.1.3.8 Safari/537.36 Channel/pckk_other_ch",
115048+
"Connection": "keep-alive",
115049+
"Accept": "application/json, text/plain, */*",
115050+
"Accept-Encoding": "gzip, deflate, br",
115051+
"Content-Type": "application/json",
115052+
"accept-language": "zh-CN",
115053+
"origin": "https://pan.quark.cn",
115054+
"sec-fetch-dest": "empty",
115055+
"sec-fetch-mode": "cors",
115056+
"sec-fetch-site": "cross-site",
115057+
"sec-ch-ua": "\"Not:A-Brand\";v=\"99\", \"Chromium\";v=\"112\"",
115058+
"sec-ch-ua-mobile": "?0",
115059+
"sec-ch-ua-platform": "\"Windows\"",
115060+
"referer": "https://pan.quark.cn/",
115061+
"Cookie": "_UP_A4A_11_=wb9ce1f8a7f74209b248cb5877a6a876; _UP_D_=pc; tfstk=gy2rZY6dQTBPmYbgblDFQOhX71M-pv7_ZJgIxkqnV40oVYZ3gkZN2Da7x2PEoyIJFYbJK2qTkbguRYTFLrko97gIP2kUvPSf5O6_2uHKEN_1C6GsZ4kK-9MhGxcbeD-R5O6_quHKKN__NjmeBVnnK0co-Ejq2qmoxy0oiEmZXv03-yj4mqnnK24nKirmkDDn-ycsi2063cllqNA0iO9nAbugqqJU2-ooaQEoupv33dGrSyg2Kp2q2kJ_DBpNOVVtPfguot9rLomUufNP7LzUxlFngJ8lVP40TymYMwRE7Wq76-GXxG0geo2tnj6Gbo2YPue4AHXncPg028DFIGHrE4DqDJ_vE2P0t8G-pUbEJ-r0EWSz_enc4z2LaeAEZmnq5iSVbveZi_88v3Rp9bFx0VsR2BdKZmnq5iS29BhoDmu10i5..; __uid=AARfyLe8Bke3UGL2FjhvNQn6; __sdid=AATHIp7rA8mvfKhhMvPnt0milUEzXi1ReJN0CjChc4LeUA6qYUdYA32jmaL/Lk2AA4s=; __pus=bd604e2725229c945e994c227de77f1cAASVpc7pXsTooap3JBI0XiJI9JU/JUngO9SJCOIRNOLXngLdOfozAiiwF9CnY/xOiEgE8NvKDDg1ZAwX7nVqe9H2ib5aMTAi+a2DfaPE6/6Won1vUOAfKCNELRmJOeYhVn3/eQUYx6B9EIw9HCYjQoKVh76daPI2lnp3QBTK/5zWGya9rVul08y86xpY3APre7I=; __kp=eb241d80-1ee6-11f1-85bf-6167dfcf1acd; __kuus=NenaSYNIw/O9SzABV2HtnjTDoH5aJthk7nOgDdt9pHeaJmMkCD/TY+jVFIrCn+WeFaQVR9h+E/YoStTBZAtB9va0ghzlZCgNuddki8Z8WOnYug==; __puus=2baf96cce907422be5e242bb1d280977AATi54Q/fKnsA5nM/iG/TZHL12hYZj/ELuUFbEwO/2jIXaSGwmvXppDKCITu73rdsZ1hRR0cY2QRpWdM0o+nFv65fCf5ZwPIaGHvUK9BOg3653jTngpTAj41u8kq5vTIDnPDPGWlYPYiUehDbyYBwxKYl12BFSjonkfKybr3Fpc2TYQcm566OQTrPzsupcOkOoa8CQllYvsoVyEBF2ZpiX/5"
115062+
},
115063+
data
115064+
};
115065+
let html = await axios.request(config);
115066+
if (html.status === 200) return html.data.data.token;
115067+
}
115068+
async getUrl(shareId, stoken, fileId, fileToken) {
115069+
await this.initQuark();
115070+
let token = await this.getToken();
115071+
let data = JSON.stringify({
115072+
"fids": [fileId],
115073+
"fids_token": [fileToken],
115074+
"pwd_id": shareId,
115075+
"stoken": stoken,
115076+
"speedup_session": "",
115077+
"token": token
115078+
});
115079+
let config = {
115080+
method: "POST",
115081+
url: "https://drive-pc.quark.cn/1/clouddrive/file/download?pr=ucpro&fr=pc",
115082+
headers: {
115083+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/3.20.0 Chrome/112.0.5615.165 Electron/24.1.3.8 Safari/537.36 Channel/pckk_other_ch",
115084+
"Connection": "keep-alive",
115085+
"Accept": "*/*,application/json;charset=utf-8",
115086+
"Accept-Encoding": "gzip, deflate, br, zstd",
115087+
"Content-Type": "application/json",
115088+
"Cookie": "b-user-id=7a421e0c-2ff4-1251-4069-cdfbfedcaf8d; _UP_A4A_11_=wb9cf15ce78d47ed921a9fab3faa85e8; xlly_s=1; __sdid=AAQCvlprpJtHMDSTmliW7CTXaxFJONVhZZyKc8NgJ6Y+XH4iO1v3Q8gYFeEi2hqeV4U=; _UP_D_=pc; __pus=97012d074b8d70d6eeaeb7dbe3fcb05dAAQB4QUahCaghYFA9y/NYud63QbrjWpcO/mp4OgGcA2UZ5O+VMUlfCpacaDzbRBV2O/DK9y9iAFBUL7iPmzdj2d9; __kp=ea759a90-1ed1-11f1-8f67-e7e56f2ee996; __kps=AARfyLe8Bke3UGL2FjhvNQn6; __ktd=axb8KS+96BcSmmEd+gddqg==; __uid=AARfyLe8Bke3UGL2FjhvNQn6; __puus=c6ca8123ab4024f139092c58678de061AATi54Q/fKnsA5nM/iG/TZHLzf8buD1i2D3OKKcgKFxmYvTq9ypLK3mbAQlXFlJz6zEGV7aROE4eXsRbMGviOH4EpwIMv8HZ3UUDPfRoIVsx+mV9xMqXujCxpQR96l9Alpe2B15pFBZl94/lBMSORn+M/cocX9mAe2wX82JvYhQYO46JRC1evvevyyyzaai9ItKcf72BRC6QzioBIic/XHI8; isg=BDg4TjMppS-k-Mk0_qdGtZTlCebKoZwrBz4YK3KgQXMmjdJ3GrWXu63lQY093VQD; tfstk=gTJiuT2wCC5_fZaEErWsOziN8jlKBO6X3EeAktQqTw7Ckctv0ty2knBOgVtv-Z7F2SJA0f_cTUs7_CCZSemDWnwA7NpAns8RR5Rx5qtFmULRuiSqcMkeuUYcGc_AuZYv0CnKeYK6ft62o4H-emTk0mLcbsyaLmScDPod_tj5i4Wqy4HL9k5sWt-TUIxGLH7CmiyNuEWULi7Ubl8V76zFqg6VuE8VTWSRcGPN7N-UTwsV3Z8V3DXFRiXVuEWqxHllpf763pJErkLuNeO_cCsGsa-N7nKvLPWT1nQ33-JHt1brQw243pjM09gPi8cAzQ_Owa8EpRXDYiYhwC0uIEx2VI5HnPo9zeRDuMOIoSbkghdWp6E4_HvcS_JNtoiJ4hs2usAIr8IGBBfkICib8h8RSQW6Du09x_AhNM5Um5W9w3pfadkgPwC5mefJs42MzglbT7y5t-sEDpPbG1SCxapyAdOShopf3Dm3am1NAG_-xDVbG1SCxannx7kf_Ms1y"
115089+
},
115090+
data
115091+
};
115092+
let html = await axios.request(config).catch((e) => e);
115093+
if (html.status === 200) return html.data.data.map((it) => {
115094+
return {
115095+
name: it.video_max_resolution,
115096+
url: it.download_url
115097+
};
115098+
});
115099+
}
115112115100
async testSupport(url, headers) {
115113-
const resp = await req$1.get(url, {
115101+
const resp = await reqs.get(url, {
115114115102
responseType: "stream",
115115115103
headers
115116115104
}).catch((err) => {
@@ -115220,7 +115208,7 @@ var QuarkHandler = class {
115220115208
const start = chunkIdx * chunkSize;
115221115209
const end = Math.min(contentLength - 1, (chunkIdx + 1) * chunkSize - 1);
115222115210
console.log(inReq.id, chunkIdx);
115223-
const dlResp = await req$1.get(url, {
115211+
const dlResp = await reqs.get(url, {
115224115212
responseType: "stream",
115225115213
timeout,
115226115214
headers: Object.assign({ Range: `bytes=${start}-${end}` }, headers)
@@ -393091,9 +393079,6 @@ async function init$2(filePath, env = {}, refresh) {
393091393079
const moduleObject = rule;
393092393080
moduleObject.cost = t2 - t1;
393093393081
moduleObject.context = context;
393094-
delete sandbox._asyncGetRule;
393095-
delete sandbox.module;
393096-
delete sandbox.exports;
393097393082
moduleCache$2.set(hashMd5, {
393098393083
moduleObject,
393099393084
hash: fileHash
@@ -393130,9 +393115,6 @@ async function getRuleObject(filePath, env, refresh) {
393130393115
ruleObject.filterable = ruleObject.hasOwnProperty("filterable") ? Number(ruleObject.filterable) : 0;
393131393116
ruleObject.quickSearch = ruleObject.hasOwnProperty("quickSearch") ? Number(ruleObject.quickSearch) : 0;
393132393117
ruleObject.cost = t2 - t1;
393133-
delete sandbox._asyncGetRule;
393134-
delete sandbox.module;
393135-
delete sandbox.exports;
393136393118
ruleObjectCache$1.set(filePath, {
393137393119
ruleObject,
393138393120
hash: fileHash
@@ -393173,9 +393155,6 @@ async function initJx(filePath, env, refresh) {
393173393155
};
393174393156
const cost = t2 - t1;
393175393157
log(`[initJx] 加载解析:${filePath} 耗时 ${cost}毫秒`);
393176-
delete sandbox._asyncGetLazy;
393177-
delete sandbox.module;
393178-
delete sandbox.exports;
393179393158
jxCache.set(hashMd5, {
393180393159
jxObj,
393181393160
hash: fileHash

0 commit comments

Comments
 (0)