shawenguan 1 سال پیش
والد
کامیت
b1c6f9ecca
3فایلهای تغییر یافته به همراه376 افزوده شده و 124 حذف شده
  1. 233 0
      Scripts/wubian/wubianFirstGrab.js
  2. 143 0
      Scripts/wubian/wubianHelper.js
  3. 0 124
      Scripts/wubian/wubianNotice.js

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 233 - 0
Scripts/wubian/wubianFirstGrab.js


+ 143 - 0
Scripts/wubian/wubianHelper.js

@@ -11,12 +11,15 @@ hostname = api.wubian.pro
 
 */
 
+const { userInfo } = require("os");
+
 
 const scriptName = `无边星链助手`;
 const magicJS = MagicJS(scriptName, "INFO");
 
 const WuBianConstKey = {
     // 基础数据
+    UserInfo: 'WubianUserInfo',
     Token: 'WubianProToken',
     ActivityListData: 'WubianActivityListData',
     ActivityGoodsList: 'WubianActivityGoodsList',
@@ -25,6 +28,11 @@ const WuBianConstKey = {
     ActivityIndexName: 'WubianActivityIndexName',
     ActivityId: 'WubianActivityId',
     TenantId: 'WubianTenantId',
+    FirstOrderCaptureEnabled: 'WubianFirstOrderCaptureEnabled',
+    FirstArtListData: 'WubianFirstArtListData',
+    FirstGoodsId: 'WubianFirstGoodsId',
+    FirstGoodsName: 'WubianFirstGoodsName',
+    CreateFirstOrderData: 'WubianCreateFirstOrderData',
 };
 
 const gUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0 (Immersed/20) uni-app`;
@@ -73,6 +81,9 @@ function checkHandleRequest() {
     magicJS.logger.info(`请求body=${magicJS.getRequestBody()}`);
     if ($request && $request.method != 'OPTIONS') {
         switch (path) {
+            case '/vmf/app/login/mobileLogin':
+                handleMobileLogin();
+                break;
             case '/vmf/app/user/collect/list':
                 handleUserCollectList();
                 break;
@@ -85,6 +96,10 @@ function checkHandleRequest() {
                 break;
             case '/vmf/app/index/artList':
                 // 发售产品
+                handleFirstArtList();
+                break;
+            case '/vmf/app/order/createFirstOrder':
+                // 创建发售订单
                 break;
             case '/vmf/app/index/littleMinerInfo':
                 break;
@@ -147,6 +162,9 @@ function checkHandleRequest() {
             case '/vmf/app/synthesis/createCompositeOrder':
                 break;
             default:
+                if (path.indexOf('/vmf/app/order/createFirstOrder') != -1) {
+                    handleCreateFirstOrder();
+                }
                 break;
         }
     }
@@ -242,6 +260,47 @@ function appendCookieStr(newCookieStr) {
     magicJS.data.write(WuBianConstKey.Cookie, cookieStr);
 }
 
+function handleMobileLogin() {
+    let rspData = getResponsePlainData();
+    if (!rspData) {
+        return;
+    }
+    if (rspData.code != 200) {
+        return;
+    }
+    /*
+    // 结果示例:
+    let result = {
+        "code": 200,
+        "data": {
+            "rankInfoHide": 0,
+            "hashId": "80n19034n1",
+            "cancellation": 0,
+            "mobile": "134*****115",
+            "isAuth": 1,
+            "isSecurityPassword": 1,
+            "tokenExpireTime": 1728625959,
+            "avatar": "/assets/img/avatar01.png",
+            "token": "bccafa59-d04c-48c9-82f6-08829155b2c6",
+            "address": "0x3dc7d16739d0f169977f589788007c33a0e8996d",
+            "locksold": 0,
+            "gameUserId": 0,
+            "nickname": "WBXL-9115",
+            "email": "",
+            "score": 0,
+            "lockown": 0
+        },
+        "msg": "成功",
+        "fail": false
+    }
+    */
+    magicJS.data.write(WuBianConstKey.UserInfo, rspData.data);
+    let token = rspData.data.token;
+    let expireDate = new Date(rspData.data.tokenExpireTime * 1000);
+    magicJS.data.write(WuBianConstKey.Token, token);
+    magicJS.notification.appendNotifyInfo(`🎉当前Token刷新到最新,过期时间:${magicJS.formatDate(expireDate, 'yyyy-MM-dd HH:mm:ss')}`);
+}
+
 function handleUserCollectList() {
     let rspData = getResponsePlainData();
     if (!rspData) {
@@ -326,6 +385,11 @@ function isActivityTaskCaptureEnabled() {
     return isEnabled;
 }
 
+function isFirstOrderCaptureEnabled() {
+    let isEnabled = magicJS.data.read(WuBianConstKey.FirstOrderCaptureEnabled, true);
+    return isEnabled;
+}
+
 function handleCvtGoodsList() {
     let rspData = getResponsePlainData();
     if (!rspData) {
@@ -371,6 +435,85 @@ function handleCompositeGoodsList() {
     magicJS.data.write(key, rspData.data);
 }
 
+function handleFirstArtList() {
+    let rspData = getResponsePlainData();
+    if (!rspData) {
+        return;
+    }
+
+    if (rspData.code != 200) {
+        return;
+    }
+    // 结果示例
+    /*
+    let result = {
+        "code": 200,
+        "data": {
+            "total": 1,
+            "next": 0,
+            "list": [
+                {
+                    "category": 1,
+                    "coverImage": "",
+                    "refreshTime": 1725881400,
+                    "count": 10000,
+                    "type": 1,
+                    "title": "星链计划",
+                    "avatar": "/uploads/20240830/c18be0bb7951859b97a7a2afba9d33a2.jpg",
+                    "image": "/uploads/20240909/0c5d20baa4c00a3390b131b84bf8d592.jpg",
+                    "tagList": [
+
+                    ],
+                    "price": 138,
+                    "attachFileType": 1,
+                    "artId": "3oe8bev8",
+                    "nickname": "无边星链",
+                    "status": "1"
+                }
+            ]
+        },
+        "msg": "成功",
+        "fail": false
+    }
+    */
+    let artDataDict = magicJS.data.read(WuBianConstKey.FirstArtListData, {});
+    let artList = rspData.data.list;
+    for (let item of artList) {
+        const artId = item.artId;
+        artDataDict[artId] = item;
+    }
+    magicJS.data.write(WuBianConstKey.FirstArtListData, artDataDict);
+}
+
+function getFirstArtData(artId) {
+    let artDataDict = magicJS.data.read(WuBianConstKey.FirstArtListData, {});
+    return artDataDict[artId];
+}
+
+function getFirstArtName(artId) {
+    let data = getFirstArtData(artId);
+    if (data) {
+        return data.title;
+    }
+    return `${artId}`;
+}
+
+function handleCreateFirstOrder() {
+    let rspData = getResponsePlainData();
+    if (!rspData) {
+        return;
+    }
+    if (isFirstOrderCaptureEnabled()) {
+        // `https://api.wubian.pro/vmf/app/order/createFirstOrder?token=80n19034n1`
+        let reqData = JSON.parse(magicJS.getRequestBody());
+        let queryParams = magicJS.parseQueryStr($request.url);
+        reqData.token = queryParams.token;
+        magicJS.data.write(WuBianConstKey.CreateFirstOrderData, reqData);
+        magicJS.data.write(WuBianConstKey.FirstGoodsId, reqData.artHashId);
+        magicJS.notification.appendNotifyInfo(`🎉产品[${getFirstArtName(reqData.artHashId)}]数据采集成功!`);
+    }
+}
+
 Main().catch((e) => magicJS.logger.log(`-\n ${e}`)).finally(() => magicJS.done());
 
 

+ 0 - 124
Scripts/wubian/wubianNotice.js

@@ -94,130 +94,6 @@ function updateHeaders() {
     gCommonHeaders['cookie'] = `token=${gToken}`;
 }
 
-function getResponsePlainData() {
-    let data = magicJS.getResponseBody();
-    if (!data) {
-        return;
-    }
-    try {
-        return JSON.parse(data);
-    } catch (err) {
-        magicJS.logger.error(err);
-    }
-}
-
-function getRequestPlainData() {
-    let data = magicJS.getRequestBody();
-    let reqData = null;
-    if (data) {
-        reqData = JSON.parse(data);
-    } else {
-        reqData = magicJS.parseQueryStr($request.url);
-    }
-    return reqData;
-}
-
-function getQueryPlainData() {
-    let params = magicJS.parseQueryStr($request.url);
-    return params;
-}
-
-function compareCookieStr(cookieStr1, cookieStr2) {
-    let cookieDict1 = magicJS.parseCookies(cookieStr1);
-    let cookieDict2 = magicJS.parseCookies(cookieStr2);
-    let skipKeys = [];
-    let retCode = 0;
-    for (let key in cookieDict1) {
-        if (!skipKeys.includes(key)) {
-            if (cookieDict1[key] != void 0 && cookieDict2[key] != void 0 && cookieDict1[key] != cookieDict2[key]) {
-                magicJS.logger.info(`${key}`);
-                retCode = -1;
-                break;
-            }
-        }
-    }
-    return retCode;
-}
-
-function appendCookieStr(newCookieStr) {
-    let cookieStr = magicJS.data.read(WuBianConstKey.Cookie, null);
-    let cookieDict = magicJS.parseCookies(cookieStr);
-    let newCookieDict = magicJS.parseCookies(newCookieStr);
-    for (let key in newCookieDict) {
-        cookieDict[key] = newCookieDict[key];
-    }
-    cookieStr = magicJS.serializeCookies(cookieDict);
-    magicJS.data.write(WuBianConstKey.Cookie, cookieStr);
-}
-
-function handleUserCollectList() {
-    let rspData = getResponsePlainData();
-    if (!rspData) {
-        return;
-    }
-    if (rspData.code != 200) {
-        return;
-    }
-    handleHeaders();
-}
-
-function handleInitData() {
-    let rspData = getResponsePlainData();
-    if (!rspData) {
-        return;
-    }
-    if (rspData.code != 200) {
-        return;
-    }
-    handleHeaders();
-}
-
-function getWillActivityTagName() {
-    let tagName = magicJS.data.read(WuBianConstKey.ActivityTagName, '');
-    return tagName;
-}
-
-function getWillActivityIndexName() {
-    let indexName = magicJS.data.read(WuBianConstKey.ActivityIndexName, '');
-    return indexName;
-}
-
-function getWillActivityId() {
-    let activityId = magicJS.data.read(WuBianConstKey.ActivityId, '');
-    return activityId;
-}
-
-
-function getActivityWillCount() {
-    return 99999;
-}
-
-async function getWillActivityData() {
-    let tagName = getWillActivityTagName();
-    let indexName = getWillActivityIndexName();
-    let activityId = getWillActivityId();
-    let activityType = getActivityType(tagName);
-    let activityLstMap = await getActivityList(activityType);
-    let activityData = null;
-    magicJS.logger.info(`activityType=${activityType} activityId=${activityId}`);
-    magicJS.logger.info(`${JSON.stringify(activityLstMap)}`);
-
-    for (let hashId in activityLstMap) {
-        let item = activityLstMap[hashId];
-        if ((indexName.length > 0 && item.name.indexOf(indexName) != -1) || (item.activityId == activityId || item.hashId == activityId)) {
-            activityData = item;
-        }
-    }
-    if (!activityData) {
-        let key = `${WuBianConstKey.ActivityGoodsList}#${activityId}`;
-        let retCvtData = magicJS.data.read(key, null);
-        if (retCvtData) {
-            activityData = retCvtData.activityInfo;
-        }
-    }
-    return activityData;
-}
-
 async function tryNewNotice() {
     let tenantId = magicJS.data.read(WuBianConstKey.TenantId, '238bw8l9n5');
     let retData = await getNoticeListByCategory(1, 1, 20, tenantId);

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است