shawenguan 1 anno fa
parent
commit
a7cb24d4fb
2 ha cambiato i file con 108 aggiunte e 26 eliminazioni
  1. 68 26
      Scripts/smzdm/smzdmHelper.js
  2. 40 0
      Scripts/util/MagicJS3.js

+ 68 - 26
Scripts/smzdm/smzdmHelper.js

@@ -30,13 +30,14 @@ const magicJS = MagicJS(scriptName, "INFO");
 
 let currentCookie = "";
 
-let iosUserAgent = 'smzdm 10.7.7 rv:146.5 (iPhone 14 Pro; iOS 16.6.1; zh_CN)/iphone_smzdmapp/10.7.7';
-let androidUserAgent = 'smzdm_android_V10.6.15 rv:936 (MT2110;Android13;zh)smzdmapp';
-
+let pcUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.41';
 let webUserAgent = '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 mixUserAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/smzdm 10.7.7 rv:146.5 (iPhone 14 Pro; iOS 16.6.1; zh_CN)/iphone_smzdmapp/10.7.7/wkwebview/jsbv_1.0.0';
 
-let pcUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.41';
+let appVersion = '10.7.7';
+let iosUserAgent = `smzdm ${appVersion} rv:146.5 (iPhone 14 Pro; iOS 16.6.1; zh_CN)/iphone_smzdmapp/${appVersion}`;
+let androidUserAgent = `smzdm_android_V${appVersion} rv:936 (MT2110;Android13;zh)smzdmapp`;
+let mixUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/smzdm ${appVersion} rv:146.5 (iPhone 14 Pro; iOS 16.6.1; zh_CN)/iphone_smzdmapp/${appVersion}/wkwebview/jsbv_1.0.0`;
+
 
 async function Main() {
     if (magicJS.isRequest) {
@@ -155,6 +156,45 @@ async function getWebOrAppCookie() {
     }
 }
 
+function robotToken() {
+    return new Promise(async (resolve, reject) => {
+        const ts = Date.now();
+        const smzdmKey = 'apr1$AwP!wRRT$gJ/q.X24poeBInlUJC';
+        const preHash = `f=android&time=${ts}&v=10.4.1&weixin=1&key=${smzdmKey}`;
+        const md5 = createWMd5();
+        const sign = md5.hex_md5_32Upper(preHash);
+        const data = {
+            "f": "android",
+            "v": appVersion,
+            "weixin": 1,
+            "time": ts,
+            "sign": sign
+        };
+        await magicJS.http.post({
+                url: "https://user-api.smzdm.com/robot/token",
+                headers: {
+                    'Accept-Language': 'zh-Hans-CN;q=1',
+                    'Accept-Encoding': 'gzip, deflate, br',
+                    'Connection': 'Keep-Alive',
+                    'Content-Type': 'application/x-www-form-urlencoded',
+                    'Cookie': androidCookie,
+                    "Host": "user-api.smzdm.com",
+                    'User-Agent': androidUserAgent,
+                },
+                body: magicJS.objToQueryStr(data),
+            }).then(resp => {
+                let obj = resp.body;
+                magicJS.logger.info(`robotTokenRet=${obj}`);
+                if (typeof obj === "string") {
+                    obj = JSON.parse(obj);
+                }
+            }).catch((err) => {
+               magicJS.logger.error(`获取robotToken异常,${err}`);
+               reject(err);
+            });
+    });
+}
+
 function androidSignin(username) {
     return new Promise(async (resolve, reject) => {
         const smzdmToken = currentCookie.slice(5);
@@ -486,28 +526,30 @@ async function multiUsersSignIn() {
             // 每日签到
             if (magicJS.data.read(smzdmSigninKey, true) === true) {
                 // Android端签到
-                await magicJS.utils
-                    .retry(androidSignin, 1, 1000)(beforeUserInfo["nick_name"])
-                    .catch((err) => {
-                        subTitle = `Android端签到异常: ${err}`;
-                    });
-            }
-
-            // 日常任务
-            if (magicJS.data.read(smzdmMissionKey, true) === true) {
-                // const success = await favArticles();
-                // const msg = `每日收藏文章任务 ${success}/${clickFavArticleMaxTimes}`;
-                // content += !!content ? `\n${msg}` : msg;
-                // magicJS.logger.info(msg);
+                // await magicJS.utils
+                //     .retry(androidSignin, 1, 1000)(beforeUserInfo["nick_name"])
+                //     .catch((err) => {
+                //         subTitle = `Android端签到异常: ${err}`;
+                //     });
+                let tokenData = await robotToken();
+                magicJS.logger.info(`tokenData=${JSON.stringify(tokenData)}`);
             }
 
-            // 抽奖
-            if (magicJS.data.read(smzdmLotteryKey, true) === true) {
-                const msg = await lotteryDraw();
-                content += !!content ? "\n" : "";
-                content += msg;
-                magicJS.logger.info(msg);
-            }
+            // // 日常任务
+            // if (magicJS.data.read(smzdmMissionKey, true) === true) {
+            //     const success = await favArticles();
+            //     const msg = `每日收藏文章任务 ${success}/${clickFavArticleMaxTimes}`;
+            //     content += !!content ? `\n${msg}` : msg;
+            //     magicJS.logger.info(msg);
+            // }
+
+            // // 抽奖
+            // if (magicJS.data.read(smzdmLotteryKey, true) === true) {
+            //     const msg = await lotteryDraw();
+            //     content += !!content ? "\n" : "";
+            //     content += msg;
+            //     magicJS.logger.info(msg);
+            // }
 
             // 休眠
             await magicJS.utils.sleep(3000);
@@ -521,7 +563,7 @@ async function multiUsersSignIn() {
             title = `${scriptName} - ${afterUserInfo.nick_name} V${afterUserInfo.vip}`;
 
             // 检查是否黑号
-            if (magicJS.data.read(smzdmCheckBlackRoom, true) === true && (afterUserInfo.blackroom_desc)) {
+            if (magicJS.data.read(smzdmCheckBlackRoom, false) === true && (afterUserInfo.blackroom_desc)) {
                 magicJS.notification.post(
                     title, "",
                     `⚠️账户已在小黑屋中,请谨慎使用脚本!\n小黑屋描述:${afterUserInfo.blackroom_desc}`

+ 40 - 0
Scripts/util/MagicJS3.js

@@ -234,6 +234,46 @@ function MagicJS(scriptName = "MagicJS", logLevel = "INFO") {
                 return $response.body;
             }
         }
+        objToQueryStr(obj, encode) {
+            let str = '';
+            for (const key in obj) {
+                let value = obj[key];
+                if (value != null && value !== '') {
+                    if (typeof value === 'object') {
+                        value = JSON.stringify(value);
+                    } else if (encode) {
+                        value = encodeURIComponent(value);
+                    }
+                    str += `${key}=${value}&`;
+                }
+            }
+            str = str.substring(0, str.length - 1);
+            return str;
+        }
+        parseQueryStr(str) {
+            let obj = {};
+            if (str.indexOf("?") > -1) {
+                str = str.split("?")[1];
+            }
+            let arr = str.split("&");
+            for (let i = 0; i < arr.length; i++) {
+                let kv = arr[i].split("=");
+                obj[kv[0]] = kv[1];
+            }
+            return obj;
+        }
+        deepClone(obj, newObj) {
+            newObj = newObj || {};
+            for (let key in obj) {
+                if (typeof obj[key] == 'object') {
+                    newObj[key] = (obj[key].constructor === Array) ? [] : {};
+                    this.deepClone(obj[key], newObj[key]);
+                } else {
+                    newObj[key] = obj[key];
+                }
+            }
+            return newObj;
+        }
         costTime() {
             let info = `${this.scriptName}执行完毕!`
             // if (this.isNode && this.isExecComm) {