|
17 | 17 | * @since 1.0.0 |
18 | 18 | */ |
19 | 19 |
|
20 | | -import req from '../req.js'; |
| 20 | +import {reqs} from '../req.js'; |
21 | 21 | import {ENV} from '../env.js'; |
22 | 22 | import COOKIE from '../cookieManager.js'; |
23 | 23 | import CryptoJS from "crypto-js"; |
@@ -143,16 +143,16 @@ class QuarkHandler { |
143 | 143 | * @returns {Promise<void>} |
144 | 144 | */ |
145 | 145 | async initQuark() { |
146 | | - if (this.token) { |
147 | | - let exp = JSON.parse(CryptoJS.enc.Base64.parse(this.token.split('.')[1]).toString(CryptoJS.enc.Utf8)) |
148 | | - let now = Math.floor(Date.now() / 1000) |
149 | | - if (exp.exp < now) { |
150 | | - console.log('登录状态已过期,重新登录,请及时更换Token') |
151 | | - } else { |
152 | | - console.log('登录成功,继续使用,可使用时间截止到:' + (new Date(exp.exp * 1000)).toLocaleString()) |
153 | | - console.log('QuarkTV token获取成功:' + this.token) |
154 | | - } |
155 | | - } |
| 146 | + // if(this.token){ |
| 147 | + // let exp = JSON.parse(CryptoJS.enc.Base64.parse(this.token.split('.')[1]).toString(CryptoJS.enc.Utf8)) |
| 148 | + // let now = Math.floor(Date.now() / 1000) |
| 149 | + // if (exp.exp < now) { |
| 150 | + // console.log('登录状态已过期,重新登录,请及时更换Token') |
| 151 | + // } else { |
| 152 | + // console.log('登录成功,继续使用,可使用时间截止到:' + (new Date(exp.exp * 1000)).toLocaleString()) |
| 153 | + // console.log('QuarkTV token获取成功:' + this.token) |
| 154 | + // } |
| 155 | + // } |
156 | 156 | if (this.cookie) { |
157 | 157 | console.log("cookie 获取成功"); |
158 | 158 | } else { |
@@ -335,12 +335,12 @@ class QuarkHandler { |
335 | 335 | let link = `${this.apiUrl}/${url}` |
336 | 336 | // 发送请求 - 根据方法类型选择GET或POST请求 |
337 | 337 | const resp = |
338 | | - method === 'get' ? await req.get(link, { |
| 338 | + method === 'get' ? await reqs.get(link, { |
339 | 339 | headers: headers, |
340 | 340 | }).catch((err) => { |
341 | 341 | console.error(err.message); |
342 | 342 | return err.response || {status: 500, data: {}}; |
343 | | - }) : await req.post(link, data, { |
| 343 | + }) : await reqs.post(link, data, { |
344 | 344 | headers: headers, |
345 | 345 | }).catch((err) => { |
346 | 346 | console.error(err.message); |
@@ -650,7 +650,6 @@ class QuarkHandler { |
650 | 650 | const resCookie = cookieResDataSelf['set-cookie']; |
651 | 651 | if (!resCookie) { |
652 | 652 | console.log(`${from}自动更新夸克 cookie: 没返回新的cookie`); |
653 | | - |
654 | 653 | return |
655 | 654 | } |
656 | 655 | const cookieObject = COOKIE.parse(resCookie); |
@@ -719,40 +718,43 @@ class QuarkHandler { |
719 | 718 | return CryptoJS.SHA256(data).toString(); |
720 | 719 | } |
721 | 720 |
|
722 | | - async refreshToken() { |
723 | | - let data = JSON.stringify({ |
724 | | - "req_id": reqId, |
725 | | - "app_ver": this.conf.appVer, |
726 | | - "device_id": deviceID, |
727 | | - "device_brand": "OPPO", |
728 | | - "platform": "tv", |
729 | | - "device_name": "PCRT00", |
730 | | - "device_model": "PCRT00", |
731 | | - "build_device": "aosp", |
732 | | - "build_product": "PCRT00", |
733 | | - "device_gpu": "Adreno%20(TM)%20640", |
734 | | - "activity_rect": "%7B%7D", |
735 | | - "channel": this.conf.channel, |
736 | | - "refresh_token": this.token |
737 | | - }); |
738 | | - let config = { |
739 | | - method: 'POST', |
740 | | - url: 'http://api.extscreen.com/quarkdrive', |
741 | | - headers: { |
742 | | - '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', |
743 | | - 'Connection': 'Keep-Alive', |
744 | | - 'Accept-Encoding': 'gzip', |
745 | | - 'Content-Type': 'application/json', |
746 | | - 'Cookie': 'sl-session=VIaxTAKF8mdJBhU2uda0zA==' |
747 | | - }, |
748 | | - data: data |
749 | | - }; |
750 | | - let req = await axios.request(config); |
751 | | - if (req.status === 200) { |
752 | | - ENV.set('uc_token_cookie', req.data.data.refresh_token) |
753 | | - return await this.getDownload(shareId, stoken, fileId, fileToken, clean) |
754 | | - } |
755 | | - } |
| 721 | + // async refreshToken(shareId, stoken, fileId, fileToken, clean){ |
| 722 | + // const timestamp = Math.floor(Date.now() / 1000).toString() + '000'; // 13位时间戳需调整 |
| 723 | + // const deviceID = this.Addition.DeviceID || this.generateDeviceID(timestamp); |
| 724 | + // const reqId = this.generateReqId(deviceID, timestamp); |
| 725 | + // let data = JSON.stringify({ |
| 726 | + // "req_id": reqId, |
| 727 | + // "app_ver": this.conf.appVer, |
| 728 | + // "device_id": deviceID, |
| 729 | + // "device_brand": "OPPO", |
| 730 | + // "platform": "tv", |
| 731 | + // "device_name": "PCRT00", |
| 732 | + // "device_model": "PCRT00", |
| 733 | + // "build_device": "aosp", |
| 734 | + // "build_product": "PCRT00", |
| 735 | + // "device_gpu": "Adreno%20(TM)%20640", |
| 736 | + // "activity_rect": "%7B%7D", |
| 737 | + // "channel": this.conf.channel, |
| 738 | + // "refresh_token": this.token |
| 739 | + // }); |
| 740 | + // let config = { |
| 741 | + // method: 'POST', |
| 742 | + // url: 'http://api.extscreen.com/quarkdrive', |
| 743 | + // headers: { |
| 744 | + // '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', |
| 745 | + // 'Connection': 'Keep-Alive', |
| 746 | + // 'Accept-Encoding': 'gzip', |
| 747 | + // 'Content-Type': 'application/json', |
| 748 | + // 'Cookie': 'sl-session=VIaxTAKF8mdJBhU2uda0zA==' |
| 749 | + // }, |
| 750 | + // data: data |
| 751 | + // }; |
| 752 | + // let req = await axios.request(config); |
| 753 | + // if(req.status === 200) { |
| 754 | + // ENV.set('quark_token_cookie',req.data.data.refresh_token) |
| 755 | + // return await this.getDownload(shareId, stoken, fileId, fileToken, clean) |
| 756 | + // } |
| 757 | + // } |
756 | 758 |
|
757 | 759 | async getDownload(shareId, stoken, fileId, fileToken, clean) { |
758 | 760 | await this.initQuark() |
@@ -1000,10 +1002,83 @@ class QuarkHandler { |
1000 | 1002 |
|
1001 | 1003 | } |
1002 | 1004 |
|
| 1005 | + async getToken() { |
| 1006 | + let t = Math.floor(new Date().getTime() / 1e3) |
| 1007 | + |
| 1008 | + let data = JSON.stringify({ |
| 1009 | + "conversation_id": "300000" + t, |
| 1010 | + "conversation_type": 3, |
| 1011 | + "msg_id": t + "000" |
| 1012 | + }); |
| 1013 | + |
| 1014 | + let config = { |
| 1015 | + method: 'POST', |
| 1016 | + url: 'https://drive-social-api.quark.cn/1/clouddrive/chat/conv/file/acquire_dl_token?pr=ucpro&fr=pc&sys=darwin&ve=3.19', |
| 1017 | + headers: { |
| 1018 | + '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', |
| 1019 | + 'Connection': 'keep-alive', |
| 1020 | + 'Accept': 'application/json, text/plain, */*', |
| 1021 | + 'Accept-Encoding': 'gzip, deflate, br', |
| 1022 | + 'Content-Type': 'application/json', |
| 1023 | + 'accept-language': 'zh-CN', |
| 1024 | + 'origin': 'https://pan.quark.cn', |
| 1025 | + 'sec-fetch-dest': 'empty', |
| 1026 | + 'sec-fetch-mode': 'cors', |
| 1027 | + 'sec-fetch-site': 'cross-site', |
| 1028 | + 'sec-ch-ua': '"Not:A-Brand";v="99", "Chromium";v="112"', |
| 1029 | + 'sec-ch-ua-mobile': '?0', |
| 1030 | + 'sec-ch-ua-platform': '"Windows"', |
| 1031 | + 'referer': 'https://pan.quark.cn/', |
| 1032 | + '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' |
| 1033 | + }, |
| 1034 | + data: data |
| 1035 | + }; |
| 1036 | + let html = await axios.request(config) |
| 1037 | + if (html.status === 200) { |
| 1038 | + return html.data.data.token |
| 1039 | + } |
| 1040 | + } |
| 1041 | + |
| 1042 | + //伪造token实现无限不转存 |
| 1043 | + async getUrl(shareId, stoken, fileId, fileToken) { |
| 1044 | + await this.initQuark() |
| 1045 | + let token = await this.getToken() |
| 1046 | + let data = JSON.stringify({ |
| 1047 | + "fids": [fileId], |
| 1048 | + "fids_token": [fileToken], |
| 1049 | + "pwd_id": shareId, |
| 1050 | + "stoken": stoken, |
| 1051 | + "speedup_session": "", |
| 1052 | + "token": token |
| 1053 | + }); |
| 1054 | + let config = { |
| 1055 | + method: 'POST', |
| 1056 | + url: 'https://drive-pc.quark.cn/1/clouddrive/file/download?pr=ucpro&fr=pc', |
| 1057 | + headers: { |
| 1058 | + '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', |
| 1059 | + 'Connection': 'keep-alive', |
| 1060 | + 'Accept': '*/*,application/json;charset=utf-8', |
| 1061 | + 'Accept-Encoding': 'gzip, deflate, br, zstd', |
| 1062 | + 'Content-Type': 'application/json', |
| 1063 | + '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' |
| 1064 | + }, |
| 1065 | + data: data |
| 1066 | + }; |
| 1067 | + let html = await axios.request(config).catch(e => e) |
| 1068 | + if (html.status === 200) { |
| 1069 | + return html.data.data.map(it => { |
| 1070 | + return { |
| 1071 | + name: it.video_max_resolution, |
| 1072 | + url: it.download_url |
| 1073 | + } |
| 1074 | + }) |
| 1075 | + } |
| 1076 | + } |
| 1077 | + |
1003 | 1078 |
|
1004 | 1079 | async testSupport(url, headers) { |
1005 | 1080 |
|
1006 | | - const resp = await req |
| 1081 | + const resp = await reqs |
1007 | 1082 |
|
1008 | 1083 | .get(url, { |
1009 | 1084 |
|
@@ -1236,7 +1311,7 @@ class QuarkHandler { |
1236 | 1311 |
|
1237 | 1312 | console.log(inReq.id, chunkIdx); |
1238 | 1313 |
|
1239 | | - const dlResp = await req.get(url, { |
| 1314 | + const dlResp = await reqs.get(url, { |
1240 | 1315 |
|
1241 | 1316 | responseType: 'stream', |
1242 | 1317 |
|
|
0 commit comments