shawenguan il y a 1 an
Parent
commit
0fd29ce747
2 fichiers modifiés avec 40 ajouts et 10 suppressions
  1. 16 2
      BoxJsSub/wubian.json
  2. 24 8
      Scripts/wubian/wubianSynthesis.js

+ 16 - 2
BoxJsSub/wubian.json

@@ -139,7 +139,7 @@
                     "id": "WubianFirstGrabRunsPerSecond",
                     "name": "当前首发抢购执行此次(n次每秒)",
                     "val": 5,
-                    "type": "text",
+                    "type": "number",
                     "desc": "当前首发抢购执行此次(n次每秒)"
                 }
             ]
@@ -174,6 +174,13 @@
                     "desc": "默认开启"
                 },
                 {
+                    "id": "WubianSynthesisUseCacheEnabled",
+                    "name": "开启/关闭材料组合缓存",
+                    "val": false,
+                    "type": "boolean",
+                    "desc": "默认关闭"
+                },
+                {
                     "id": "WubianActivityActivityTagName",
                     "name": "当前合成/兑换活动标签关键字",
                     "val": "",
@@ -205,8 +212,15 @@
                     "id": "WubianSynthesisRunsPerSecond",
                     "name": "当前合成/兑换执行此次(n次每秒)",
                     "val": 5,
-                    "type": "text",
+                    "type": "number",
                     "desc": "当前合成/兑换执行此次(n次每秒)"
+                },
+                {
+                    "id": "WubianSynthesisAllowAdvanceTime",
+                    "name": "当前合成/兑换执行提前时间(单位秒)",
+                    "val": 5,
+                    "type": "number",
+                    "desc": "当前合成/兑换执行提前时间(单位秒)"
                 }
             ]
         },

+ 24 - 8
Scripts/wubian/wubianSynthesis.js

@@ -22,6 +22,8 @@ const WuBianConstKey = {
     SynthesisCompositeGoodsListReqTime: 'WubianSynthesisCompositeGoodsListReqTime',
     SynthesisConvertGoodsListReqTime: 'WubianSynthesisConvertGoodsListReqTime',
     SynthesisActivityDisabled: 'WubianSynthesisActivityDisabled',
+    SynthesisAllowAdvanceTime: 'WubianSynthesisAllowAdvanceTime',
+    SynthesisUseCacheEnabled: 'WubianSynthesisUseCacheEnabled',
 };
 
 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`;
@@ -287,6 +289,14 @@ function checkActivityAutoDisable(activityId) {
     return false;
 }
 
+function getAllowAdvanceTime() {
+    return magicJS.data.read(WuBianConstKey.SynthesisAllowAdvanceTime, 5);
+}
+
+function isSynthesisUseCacheEnabled() {
+    return magicJS.data.read(WuBianConstKey.SynthesisUseCacheEnabled, false);
+}
+
 async function trySynthesize() {
     magicJS.logger.info(`[0]活动任务开始执行...`);
     let activityData = await getWillActivityData();
@@ -295,18 +305,24 @@ async function trySynthesize() {
         return;
     }
     let nowTime = Date.now() / 1000;
-    let diffTimeSec = 5;
+    let diffTimeSec = getAllowAdvanceTime();
     if (nowTime < activityData.startTime - diffTimeSec) {
-        magicJS.notification.appendNotifyInfo(`活动[${activityData.name}]未开始,距离开始时间${activityData.startTime - nowTime}秒,请在活动开始前${diffTimeSec}秒内执行!`);
+        magicJS.notification.appendNotifyInfo(`活动[${activityData.name}]未开始,距离开始时间${Math.floor(activityData.startTime - nowTime)}秒,请在活动开始前${diffTimeSec}秒内执行!`);
         return;
     }
     magicJS.logger.info(`[2]活动任务开始执行...`);
     let activityId = activityData.hashId || activityData.activityId;
     let retCvtData = null;
-    if (activityData.type == 0) {
-        retCvtData = await doGetCompositeGoodsList(activityId, checkCompositeGoodsListReqForceNeed());
-    } else if (activityData.type == 1) {
-        retCvtData = await doGetConvertGoodsList(activityId, checkConvertGoodsListReqForceNeed());
+    if (isSynthesisUseCacheEnabled()) {
+        let key = `${WuBianConstKey.ActivityGoodsList}#${activityId}`;
+        retCvtData = magicJS.data.read(key, null);
+    }
+    if (!retCvtData) {
+        if (activityData.type == 0) {
+            retCvtData = await doGetCompositeGoodsList(activityId, checkCompositeGoodsListReqForceNeed());
+        } else if (activityData.type == 1) {
+            retCvtData = await doGetConvertGoodsList(activityId, checkConvertGoodsListReqForceNeed());
+        }
     }
     magicJS.logger.info(`[3]活动任务开始执行...`);
     // magicJS.logger.info(`retCvtData=${JSON.stringify(retCvtData)}`);
@@ -334,7 +350,7 @@ async function trySynthesize() {
     } else {
         if (isConcurrentExcute) {
             nowTime = Date.now() / 1000;
-            let waittingMSec = (activityData.startTime - nowTime) * 1000;
+            let waittingMSec = Math.floor((activityData.startTime - nowTime) * 1000);
             if (waittingMSec > 0) {
                 magicJS.logger.info(`等待${waittingMSec}毫秒后开始执行...`);
                 await magicJS.utils.sleep(waittingMSec - 80);
@@ -383,7 +399,7 @@ async function trySynthesize() {
             }
         } else {
             nowTime = Date.now() / 1000;
-            let waittingMSec = (activityData.startTime - nowTime) * 1000;
+            let waittingMSec = Math.floor((activityData.startTime - nowTime) * 1000);
             if (waittingMSec > 0) {
                 magicJS.logger.info(`等待${waittingMSec}毫秒后开始执行...`);
                 await magicJS.utils.sleep(waittingMSec - 80);