shawenguan 1 gadu atpakaļ
vecāks
revīzija
f9b384d1a5

+ 30 - 12
Scripts/unicom/unicomHelper.js

@@ -46,6 +46,8 @@ const UnicomConstKey = {
     RechargeDiscData: 'UnicomRechargeDiscData',
     DeviceId: 'UnicomDeviceId',
     TokenOnline: 'UnicomTokenOnline',
+    DesMobile: 'UnicomDesMobile',
+    OnlineData: 'UnicomOnlineData',
 };
 
 let gRetBody;
@@ -196,6 +198,7 @@ function hanldeOnline() {
     if (rspData.code != '0') {
         return;
     }
+    handleHeaders();
     // 系统时间
     let sysTime = Number(rspData.sysTime);
     rspData.sysTime = String(sysTime);
@@ -204,26 +207,34 @@ function hanldeOnline() {
     let invalidatInterval = 5 * 60 * 1000;
     rspData.invalidat = magicJS.formatDate(new Date(sysTime + invalidatInterval), 'yyyy-MM-dd HH:mm:ss');
     magicJS.data.write(UnicomConstKey.TokenOnline, rspData.token_online);
+    magicJS.data.write(UnicomConstKey.DesMobile, rspData.desmobile);
 
     let reqData = getQueryPlainData();
     magicJS.data.write(UnicomConstKey.DeviceId, reqData.deviceId);
     gRetBody = rspData;
 
+    magicJS.data.write(UnicomConstKey.OnlineData, rspData);
+
     if ($response.headers) {
-        let cookieStr = magicJS.data.read(UnicomConstKey.Cookie, null);
-        let cookieDict = magicJS.parseCookies(cookieStr);
-        let SetCookieData = magicJS.parseSetCookies($response.headers['Set-Cookie'] || '');
-        for (let i = 0; i < SetCookieData.length; i++) {
-            let info = SetCookieData[i];
-            let name = info.name;
-            let value = info.value;
-            cookieDict[name] = value;
-        }
-        cookieStr = magicJS.serializeCookies(cookieDict);
-        magicJS.logger.info(`当前Cookie刷新到最新`);
+        updateCookie($response.headers['Set-Cookie']);
     }
 }
 
+function updateCookie(setCookieStr) {
+    let cookieStr = magicJS.data.read(UnicomConstKey.Cookie, null);
+    let cookieDict = magicJS.parseCookies(cookieStr);
+    let SetCookieData = magicJS.parseSetCookies(setCookieStr || '');
+    for (let i = 0; i < SetCookieData.length; i++) {
+        let info = SetCookieData[i];
+        let name = info.name;
+        let value = info.value;
+        cookieDict[name] = value;
+    }
+    cookieStr = magicJS.serializeCookies(cookieDict);
+    magicJS.data.write(UnicomConstKey.Cookie, cookieStr);
+    magicJS.logger.info(`刷新当前Cookie`);
+}
+
 function handleConfigure() {
     let rspData = getResponsePlainData();
     if (!rspData) {
@@ -408,7 +419,14 @@ function handleGrabCoupon() {
 }
 
 function handleQueryUserInfoSeven() {
-
+    let rspData = getResponsePlainData();
+    if (!rspData) {
+        return;
+    }
+    if (rspData.code != 'Y') {
+        return;
+    }
+    handleHeaders();
 }
 
 function setRechargeDiscReqData(paramStr) {

+ 0 - 53
Scripts/unicom/unicomRechargeDisc.js

@@ -310,59 +310,6 @@ function decryption(encodeKey, taskUrlEncode) {
     return reversedString.concat(frontPart);
 }
 
-
-async function doOnline(token_online) {
-    let reqData = {
-        reqtime: "2024-08-27 09:34:43",
-        version: "[email protected]",
-        simOperator: "--,--,65535,65535,--@--,--,65535,65535,--",
-        token_online: token_online,
-        longitude: "113.380124",
-        appId: "af8ceac06275e6af2826a3cf6ea168d6c0ed648f7276245712b84ec4ea4123938c988019063e69601b61ca90266aa840cc052e1ee578b31889c0a5dee8d878729760238a83ba5d716ed59aab9b7f1347d21feaec28173dbda3b21d9a5c4030a3",
-        deviceId: "603305e42ba81fb7dd07d755ba13944786e9d6bf1ae04d129a84c186f431c248",
-        latitude: "23.122429",
-        pip: "10.14.97.181",
-        deviceModel: "iPhone15,2",
-        deviceBrand: "iPhone",
-        uniqueIdentifier: "iosa0e3729a350a98e01b816b33ca9515e72",
-        step: "background",
-        isFirstInstall: "0",
-        deviceCode: "20ED00DA-C5CA-4606-97E0-13D040D991CF",
-        voipToken: "citc-default-token-do-not-push"
-    };
-    let url = `https://m.client.10010.com/mobileService/onLine.htm`;
-    let headers = {
-        'Accept': `*/*`,
-        'Accept-Encoding': `gzip, deflate, br`,
-        'Connection': `keep-alive`,
-        'Cookie': magicJS.data.read(UnicomConstKey.Cookie, ''),
-        'Content-Type': `application/x-www-form-urlencoded`,
-        'Host': `m.client.10010.com`,
-        'User-Agent': `ChinaUnicom.x CFNetwork iOS/16.6.1 unicom{version:[email protected]}`,
-        'X-Tingyun': `c=A|uBuVhVARE0A`,
-        'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
-        'X-Tingyun-Id': `4gA5HRiCw8g;c=2;r=1575348594;u=62ffa39b4f94b3f4742089def7690470bd24ba1846d5d369e5460f4f029537a331b0b70e1293dcfcd727cab6b63edf43::BD4E4C616020FB61`
-    };
-    let options = {
-        url: url,
-        headers: headers,
-        body: magicJS.objToQueryStr(reqData),
-    };
-    let result = await magicJS.http.post(options).then(response => {
-        try {
-            let rspData = response.body;
-            magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
-            return rspData;
-        } catch (e) {
-            magicJS.logger.error(e);
-        }
-    }).catch(err => {
-        const msg = `请求在线数据异常\n${JSON.stringify(err)}`;
-        magicJS.logger.error(msg);
-    });
-    return result;
-}
-
 async function grabDiscCoupon(url) {
     let headers = { ...gCommonHeaders };
 

+ 152 - 0
Scripts/unicom/unicomSignIn.js

@@ -41,6 +41,8 @@ const UnicomConstKey = {
     RechargeDiscData: 'UnicomRechargeDiscData',
     DeviceId: 'UnicomDeviceId',
     TokenOnline: 'UnicomTokenOnline',
+    DesMobile: 'UnicomDesMobile',
+    OnlineData: 'UnicomOnlineData',
 };
 
 let gRetBody;
@@ -97,8 +99,15 @@ function handleDaySign() {
 }
 
 async function tryDaySign() {
+    let onlineData = await checkOnline();
+    let userInfo = await queryUserInfoSeven();
+    if (userInfo && userInfo.signinState == '1') {
+        magicJS.notification.appendNotifyInfo(`🎉今日已签到,无需再次签到!`);
+        return;
+    }
     let result = await doDaySign();
     if (result) {
+        // 0002已签到
         if (result.code === '0000') {
             magicJS.notification.appendNotifyInfo(`🎉签到成功!`);
         } else {
@@ -109,6 +118,149 @@ async function tryDaySign() {
     }
 }
 
+
+async function checkOnline() {
+    let onlineData = magicJS.data.read(UnicomConstKey.OnlineData, null);
+    if (onlineData) {
+        let invalidat = onlineData.invalidat;
+        let invalidDate = magicJS.parseDate(invalidat, 'yyyy-MM-dd HH:mm:ss');
+        let nowDate = new Date();
+        if (nowDate.getTime() > invalidDate.getTime() - 60 * 1000) {
+            magicJS.logger.info(`token已过期,重新获取token_online`);
+            onlineData = await doOnline(onlineData.token_online);
+            let keyMap = {
+                't3_token': 't3_token',
+                'ecs_token': 'ecs_token',
+                'private_token': null,
+            }
+            if (onlineData.code == '0') {
+                magicJS.data.write(UnicomConstKey.OnlineData, onlineData);
+                return onlineData;
+            }
+            return null;
+        } else {
+            return onlineData;
+        }
+    } else {
+        let token_online = magicJS.data.read(UnicomConstKey.TokenOnline);
+        if (onlineData.code == '0') {
+            magicJS.data.write(UnicomConstKey.OnlineData, token_online);
+            return onlineData;
+        }
+        return null;
+    }
+}
+
+
+async function doOnline(token_online) {
+    let reqData = {
+        reqtime: "2024-08-27 09:34:43",
+        version: "[email protected]",
+        simOperator: "--,--,65535,65535,--@--,--,65535,65535,--",
+        token_online: token_online,
+        longitude: "113.380124",
+        appId: "af8ceac06275e6af2826a3cf6ea168d6c0ed648f7276245712b84ec4ea4123938c988019063e69601b61ca90266aa840cc052e1ee578b31889c0a5dee8d878729760238a83ba5d716ed59aab9b7f1347d21feaec28173dbda3b21d9a5c4030a3",
+        deviceId: "603305e42ba81fb7dd07d755ba13944786e9d6bf1ae04d129a84c186f431c248",
+        latitude: "23.122429",
+        pip: "10.14.97.181",
+        deviceModel: "iPhone15,2",
+        deviceBrand: "iPhone",
+        uniqueIdentifier: "iosa0e3729a350a98e01b816b33ca9515e72",
+        step: "background",
+        isFirstInstall: "0",
+        deviceCode: "20ED00DA-C5CA-4606-97E0-13D040D991CF",
+        voipToken: "citc-default-token-do-not-push"
+    };
+    let url = `https://m.client.10010.com/mobileService/onLine.htm`;
+    let headers = {
+        'Accept': `*/*`,
+        'Accept-Encoding': `gzip, deflate, br`,
+        'Connection': `keep-alive`,
+        'Cookie': magicJS.data.read(UnicomConstKey.Cookie, ''),
+        'Content-Type': `application/x-www-form-urlencoded`,
+        'Host': `m.client.10010.com`,
+        'User-Agent': `ChinaUnicom.x CFNetwork iOS/16.6.1 unicom{version:[email protected]}`,
+        'X-Tingyun': `c=A|uBuVhVARE0A`,
+        'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
+        'X-Tingyun-Id': `4gA5HRiCw8g;c=2;r=1575348594;u=62ffa39b4f94b3f4742089def7690470bd24ba1846d5d369e5460f4f029537a331b0b70e1293dcfcd727cab6b63edf43::BD4E4C616020FB61`
+    };
+    let options = {
+        url: url,
+        headers: headers,
+        body: magicJS.objToQueryStr(reqData),
+    };
+    let result = await magicJS.http.post(options).then(response => {
+        try {
+            let rspData = response.body;
+            magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
+            if (response.headers && response.headers['Set-Cookie']) {
+                updateCookie(response.headers['Set-Cookie']);
+            }
+            return rspData;
+        } catch (e) {
+            magicJS.logger.error(e);
+        }
+    }).catch(err => {
+        const msg = `请求在线数据异常\n${JSON.stringify(err)}`;
+        magicJS.logger.error(msg);
+    });
+    return result;
+}
+
+function updateCookie(setCookieData) {
+    let cookieStr = magicJS.data.read(UnicomConstKey.Cookie, null);
+    let cookieDict = magicJS.parseCookies(cookieStr);
+    let SetCookieData = magicJS.parseSetCookies($response.headers['Set-Cookie'] || '');
+    for (let i = 0; i < SetCookieData.length; i++) {
+        let info = SetCookieData[i];
+        let name = info.name;
+        let value = info.value;
+        cookieDict[name] = value;
+    }
+    cookieStr = magicJS.serializeCookies(cookieDict);
+    magicJS.data.write(UnicomConstKey.Cookie, cookieStr);
+    magicJS.logger.info(`刷新当前Cookie`);
+    updateHeaders();
+}
+
+async function queryUserInfoSeven(phoneNum = '16620077714') {
+    let reqData = {
+        version: '[email protected]',
+        desmobiel: phoneNum,
+        showType: 0,
+    }
+    const url = `https://m.client.10010.com//mobileserviceimportant/home/queryUserInfoSeven?${magicJS.objToQueryStr(reqData)}`;
+    const headers = {
+        'Accept-Encoding': `gzip, deflate, br`,
+        'Cookie': magicJS.data.read(UnicomConstKey.Cookie, ''),
+        'Connection': `keep-alive`,
+        'Accept': `*/*`,
+        'X-Tingyun-Id': `4gA5HRiCw8g;c=2;r=286707591;u=62ffa39b4f94b3f4742089def7690470bd24ba1846d5d369e5460f4f029537a331b0b70e1293dcfcd727cab6b63edf43::BD4E4C616020FB61`,
+        'Host': `m.client.10010.com`,
+        'User-Agent': `ChinaUnicom.x CFNetwork iOS/16.6.1 unicom{version:[email protected]}`,
+        'X-Tingyun': `c=A|uBuVhVARE0A`,
+        'Accept-Language': `zh-CN,zh-Hans;q=0.9`
+    };
+    let options = {
+        url: url,
+        headers: headers,
+        body: ``,
+    };
+    let result = await magicJS.http.get(options).then(response => {
+        try {
+            let rspData = response.body;
+            magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
+            return rspData;
+        } catch (e) {
+            magicJS.logger.error(e);
+        }
+    }).catch(err => {
+        const msg = `请求每日签到异常\n${JSON.stringify(err)}`;
+        magicJS.logger.error(msg);
+    });
+    return result;
+}
+
 async function doDaySign() {
     const url = `https://activity.10010.com/sixPalaceGridTurntableLottery/signin/daySign`;
     let headers = { ...gCommonHeaders };