shawenguan 1 jaar geleden
bovenliggende
commit
1912c7b68f
1 gewijzigde bestanden met toevoegingen van 75 en 8 verwijderingen
  1. 75 8
      Scripts/telecom/cloud189Helper.js

+ 75 - 8
Scripts/telecom/cloud189Helper.js

@@ -707,7 +707,7 @@ async function getLoginScanJumpUrl(url){
     });
 }
 
-async function getAppConf(){
+async function getAppConf(reqId, lt, toUrl){
     return new Promise((resolve, reject) => {
         let body = `version=2.0&appKey=cloud`;
         let headers = {
@@ -728,23 +728,88 @@ async function getAppConf(){
         }
         magicJS.http.post(options).then(resp => {
             try {
-                magicJS.logger.info(`页面数据:${JSON.stringify(resp.body)}`);
-                magicJS.logger.info(`响应头部:${JSON.stringify(resp.headers)}`);
-                let urlMatch = htmlText.match(/https?:\/\/[^\s'"]+/); // 正则表达式匹配
-                if(urlMatch){
-                    resolve(urlMatch[0]);
-                }
+                let data = resp.body;
+                magicJS.logger.info(`获取App配置: ${JSON.stringify(data)}`);
+                resolve(data);
             } catch (err) {
                 resolve();
             }
         }).catch(err => {
-            const msg = `获取页面数据异常\n${JSON.stringify(err)}`;
+            const msg = `获取App配置异常\n${JSON.stringify(err)}`;
             magicJS.logger.error(msg);
             reject(msg);
         });
     });
 }
 
+async function getEncryptConf(){
+    return new Promise((resolve, reject) => {
+        let body = `appId=cloud`;
+        let headers = {
+            "Accept": "*/*",
+            "Accept-Encoding": "gzip, deflate, br",
+            "Accept-Language": "zh-cn",
+            "Connection": "keep-alive",
+            "Content-Type": "application/x-www-form-urlencoded",
+            'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1',
+        };
+        let options = {
+            url: 'https://open.e.189.cn/api/logbox/config/encryptConf.do',
+            headers: headers,
+            body: body
+        }
+        magicJS.http.post(options).then(resp => {
+            try {
+                let data = resp.body;
+                magicJS.logger.info(`获取RSA公共密钥数据: ${JSON.stringify(data)}`);
+                resolve(data);
+            } catch (err) {
+                resolve();
+            }
+        }).catch(err => {
+            const msg = `获取RSA公共密钥异常\n${JSON.stringify(err)}`;
+            magicJS.logger.error(msg);
+            reject(msg);
+        });
+    });
+}
+
+async function getCaptchaData(lt, toUrl){
+    return new Promise((resolve, reject) => {
+        let body = `appId=cloud`;
+        let headers = {
+            "Accept": "*/*",
+            "Accept-Encoding": "gzip, deflate, br",
+            "Accept-Language": "zh-cn",
+            "Connection": "keep-alive",
+            "Content-Type": "application/x-www-form-urlencoded",
+            'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1',
+        };
+        // headers.lt = lt;
+        // headers.referer = toUrl;
+        let options = {
+            url: 'https://open.e.189.cn/api/logbox/oauth2/needcaptcha.do',
+            headers: headers,
+            body: body
+        }
+        magicJS.http.post(options).then(resp => {
+            try {
+                let data = resp.body;
+                magicJS.logger.info(JSON.stringify(data));
+                magicJS.logger.info(`获取Captcha数据: ${JSON.stringify(data)}`);
+                resolve(data);
+            } catch (err) {
+                resolve();
+            }
+        }).catch(err => {
+            const msg = `获取Captcha异常\n${JSON.stringify(err)}`;
+            magicJS.logger.error(msg);
+            reject(msg);
+        });
+    });
+}
+
+
 async function scanLogin(){
     let sInitUrl = 'https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html?returnURL=%2Fmain.action';
     let jumpUrl = await getLoginScanUrl(sInitUrl);
@@ -752,6 +817,8 @@ async function scanLogin(){
         await getLoginScanJumpUrl(jumpUrl);
     }
     await getAppConf();
+    await getEncryptConf();
+    await getCaptchaData();
     return null;
 }