shawenguan 1 rok temu
rodzic
commit
6fe6114184

+ 146 - 60
Scripts/hbcpre/hbcpreComposite.js

@@ -58,7 +58,7 @@ const gCommonHeaders = {
 async function Main() {
     if (!magicJS.isRequest) {
         updateRequestHeaders();
-        await tryComposite();
+        await tryAllComposite();
     }
     magicJS.notification.msg('');
     magicJS.done();
@@ -96,65 +96,159 @@ function updateRequestHeaders() {
     }
 }
 
-async function tryComposite() {
-    let activityId = magicJS.data.read(HbcpreConstKey.compositeActivityId, null);
-    if(!activityId){
-        let activityName = magicJS.data.read(HbcpreConstKey.compositeActivityName, null);
-        if(!activityName){
-            activityId = getActivityIdByName(activityName);
-        }
+function getActivitDataCache(eventsType, eventsId){
+    // 1=合成 3=兑换
+    let data = null;
+    let storeKey = null;
+    if(eventsType == 1){
+        storeKey = HbcpreConstKey.compositeActivityData;
+    }else if(eventsType == 3){
+        storeKey = HbcpreConstKey.exchangeActivityData;
     }
-    if(!activityId){
-        magicJS.logger.info(`缺少合成活动ID`);
-        magicJS.notification.appendNotifyInfo(`❌合成活动缺少相关参数!`);
-        return;
+    if(!storeKey){
+        data = {};
+    }else{
+        data = magicJS.data.read(storeKey, {});
     }
-    let activityData = getActivitDataCache(activityId);
-    if(!isCompositeOnlyUseCache()){
-        activityData = await getCompositeList(activityId);
-        saveActivitDataCache(activityId, activityData);
-    }
-    if(activityData){
-        // magicJS.logger.error(JSON.stringify(activityData));
-        // 固定材料
-        let needList = activityData.needList;
-        // 个人拥有材料列表
-        let ownList = activityData.ownList;
-        // ownList = checkHandleMyOwnList(activityData.ownList, needList);
-        let isEnough = true;
-        for (let i = 0; i < ownList.length; i++) {
-            let iData = ownList[i];
-            let ownWorksCnt = getOwnSeriesWorksCount(iData.seriesList);
-            if(iData.num > ownWorksCnt){
-                isEnough = false;
-                let needSeries = needList[i];
-                magicJS.notification.appendNotifyInfo(`❌缺少材料[${getNeedSeriesWorksNames(needSeries.seriesList)}](${ownWorksCnt}/${iData.num})!`);
-                continue;
-            }
+    if(eventsId){
+        return data[eventsId];
+    }
+    return data;
+}
+
+function saveActivitDataCache(eventsType, actData){
+    let data = null;
+    let storeKey = null;
+    if(eventsType == 1){
+        storeKey = HbcpreConstKey.compositeActivityData;
+        magicJS.data.write(HbcpreConstKey.compositeActivityId, actData.eventsId);
+        magicJS.data.write(HbcpreConstKey.compositeActivityName, data.eventsName);
+    }else if(eventsType == 3){
+        storeKey = HbcpreConstKey.exchangeActivityData;
+        magicJS.data.write(HbcpreConstKey.exchangeActivityId, actData.eventsId);
+        magicJS.data.write(HbcpreConstKey.exchangeActivityName, data.eventsName);
+    }
+    if(!storeKey){
+        data = {};
+    }else{
+        data = magicJS.data.read(storeKey, {});
+    }
+    data[actData.eventsId] = actData;
+    magicJS.data.write(storeKey, data);
+}
+
+function getWillCompositeTaskIds() {
+    let valArr = magicJS.data.read(GandartConstKey.compositeActivityId);
+    if (valArr && valArr.length > 0) {
+        let segments = valArr.split('|');
+        valArr = [];
+        for (let vstr of segments) {
+            valArr.push(Number(vstr.trim()));
         }
-        if(!isEnough){
-            return;
+    } else {
+        valArr = [];
+    }
+    return valArr;
+}
+
+function getWillCompositeTaskSearchKeys() {
+    let keyArr = magicJS.data.read(GandartConstKey.compositeActivityName)
+    if (keyArr && keyArr.length > 0) {
+        let segments = keyArr.split('|');
+        keyArr = [];
+        for (let vstr of segments) {
+            keyArr.push(vstr.trim());
         }
-        let materials = pickMaterials(needList, ownList);
-        if(!materials){
-            magicJS.notification.appendNotifyInfo(`❌材料不足`);
-            return;
+    } else {
+        keyArr = [];
+    }
+    return keyArr;
+}
+
+function getActivityIdByName(activityName){
+    let dataDict = getActivitDataCache(1);
+    if(!dataDict){
+        return null;
+    }
+    for(let kId in dataDict){
+        const actData = dataDict[kId];
+        if(actData.eventsName.indexOf(activityName)){
+            return activityData.eventsId;
         }
-        let result = await startComposite(activityId, materials);
-        if(!result){
-            magicJS.notification.appendNotifyInfo(`🎉合成<${activityData.eventsName}>合成失败!`);
-            return;
+    }
+    return null;
+}
+
+async function tryAllComposite() {
+    let idsList = getWillCompositeTaskIds();
+    if(idsList.length == 0){
+        let namesList = getWillCompositeTaskSearchKeys();
+        for(let name of namesList){
+            let actId = getActivityIdByName(name);
+            if(actId){
+                idsList.push(actId);
+            }
         }
-        if(result.code == 200){
-            magicJS.notification.appendNotifyInfo(`🎉合成<${activityData.eventsName}>合成成功!`);
-            // 刷新合成数据
-            activityData = await getCompositeList(activityId);
-            saveActivitDataCache(activityId, activityData);
-        } else {
-            magicJS.notification.appendNotifyInfo(`🎉合成<${activityData.eventsName}>${result.message}`);
+    }
+    if(idsList.length == 0){
+        magicJS.logger.info(`缺少兑换活动ID`);
+        magicJS.notification.appendNotifyInfo(`❌兑换活动缺少相关参数!`);
+        return;
+    }
+    for(let activityId of idsList){
+        await tryOneComposite(activityId);
+    }
+}
+
+async function tryOneComposite(activityId){
+    let activityData = getActivitDataCache(1, activityId);
+    if(!isCompositeOnlyUseCache()){
+        activityData = await getCompositeList(activityId);
+        saveActivitDataCache(1, activityData);
+    }
+    if(!activityData){
+        magicJS.logger.info(`缺少合成活动数据`);
+        return;
+    }
+    // magicJS.logger.error(JSON.stringify(activityData));
+    // 固定材料
+    let needList = activityData.needList;
+    // 个人拥有材料列表
+    let ownList = activityData.ownList;
+    // ownList = checkHandleMyOwnList(activityData.ownList, needList);
+    let isEnough = true;
+    for (let i = 0; i < ownList.length; i++) {
+        let iData = ownList[i];
+        let ownWorksCnt = getOwnSeriesWorksCount(iData.seriesList);
+        if(iData.num > ownWorksCnt){
+            isEnough = false;
+            let needSeries = needList[i];
+            magicJS.notification.appendNotifyInfo(`❌缺少材料[${getNeedSeriesWorksNames(needSeries.seriesList)}](${ownWorksCnt}/${iData.num})!`);
+            continue;
         }
-        return result;
     }
+    if(!isEnough){
+        return;
+    }
+    let materials = pickMaterials(needList, ownList);
+    if(!materials){
+        magicJS.notification.appendNotifyInfo(`❌材料不足`);
+        return;
+    }
+    let result = await startComposite(activityId, materials);
+    if(!result){
+        magicJS.notification.appendNotifyInfo(`🎉合成<${activityData.eventsName}>合成失败!`);
+        return;
+    }
+    if(result.code == 200){
+        magicJS.notification.appendNotifyInfo(`🎉合成<${activityData.eventsName}>合成成功!`);
+        // 刷新合成数据
+        activityData = await getCompositeList(activityId);
+        saveActivitDataCache(1, activityData);
+    } else {
+        magicJS.notification.appendNotifyInfo(`🎉合成<${activityData.eventsName}>${result.message}`);
+    }
+    return result;
 }
 
 function readMySeriesOwnCntFakeData() {
@@ -310,14 +404,6 @@ function getNeedSeriesWorksNames(seriesList){
     return name;
 }
 
-function getActivitDataCache(id){
-    return magicJS.data.read(HbcpreConstKey.compositeActivityData, null);
-}
-
-function saveActivitDataCache(id, data){
-    return magicJS.data.write(HbcpreConstKey.compositeActivityData, data);
-}
-
 async function getCompositeList(id){
     let reqData = {eventsId: id};
     let result = await hbRequest({API: '/mall/works/compositeList', METHOD: 'get'}, reqData);

Plik diff jest za duży
+ 396 - 186
Scripts/hbcpre/hbcpreExchange.js


+ 54 - 6
Scripts/hbcpre/hbcpreHelper.js

@@ -233,6 +233,47 @@ function getSeriesPrice(seriesId) {
     return 0;
 }
 
+function getActivitDataCache(eventsType, eventsId){
+    // 1=合成 3=兑换
+    let data = null;
+    let storeKey = null;
+    if(eventsType == 1){
+        storeKey = HbcpreConstKey.compositeActivityData;
+    }else if(eventsType == 3){
+        storeKey = HbcpreConstKey.exchangeActivityData;
+    }
+    if(!storeKey){
+        data = {};
+    }else{
+        data = magicJS.data.read(storeKey, {});
+    }
+    if(eventsId){
+        return data[eventsId];
+    }
+    return data;
+}
+
+function saveActivitDataCache(eventsType, actData){
+    let data = null;
+    let storeKey = null;
+    if(eventsType == 1){
+        storeKey = HbcpreConstKey.compositeActivityData;
+        magicJS.data.write(HbcpreConstKey.compositeActivityId, actData.eventsId);
+        magicJS.data.write(HbcpreConstKey.compositeActivityName, data.eventsName);
+    }else if(eventsType == 3){
+        storeKey = HbcpreConstKey.exchangeActivityData;
+        magicJS.data.write(HbcpreConstKey.exchangeActivityId, actData.eventsId);
+        magicJS.data.write(HbcpreConstKey.exchangeActivityName, data.eventsName);
+    }
+    if(!storeKey){
+        data = {};
+    }else{
+        data = magicJS.data.read(storeKey, {});
+    }
+    data[actData.eventsId] = actData;
+    magicJS.data.write(storeKey, data);
+}
+
 function checkHandleRequest() {
     handleHeaders();
     const request = magicJS.request;
@@ -303,6 +344,14 @@ function checkHandleRequest() {
                 //     "seriesType": 5
                 // }
                 break;
+            case '/notify/page':
+                // 查找相关公告
+                // post {
+                //     "page": 1,
+                //     "pageSize": 20,
+                //     "content": "",//可能需要 encodeURIComponent
+                // }
+                break;
             case '/api/award/index':
                 // 限时抽奖 post= {activity_id:6}
                 handleAwardIndex();
@@ -720,6 +769,9 @@ function handlerMySeriesList() {
     if (currPage > 1) {
         mySeriesData = magicJS.data.read(HbcpreConstKey.myOwnSeriesListDict, {});
     }
+    if(reqData.name){//系列名称存在,搜索时候存在
+
+    }
     // reqData.type 0=数字资产 1=盲盒 5=我的寄售 4=已卖出
     if (reqData.type == 0 || reqData.type == 1) {
         let itemList = rspData.data.list;
@@ -974,16 +1026,12 @@ function handlerCompositeList() {
     let eventsType = data.eventsType;
     if(eventsType == 1){
         if (isCompositeItemGrabEnabled()) {
-            magicJS.data.write(HbcpreConstKey.compositeActivityData, data);
-            magicJS.data.write(HbcpreConstKey.compositeActivityId, data.eventsId);
-            magicJS.data.write(HbcpreConstKey.compositeActivityName, data.eventsName);
+            saveActivitDataCache(1, data);
             magicJS.notification.post(scriptName, "", `🎉[合成]<${data.eventsName}>采集成功!`);
         }
     } else if(eventsType == 3){
         if (isExchangeItemGrabEnabled()){
-            magicJS.data.write(HbcpreConstKey.exchangeActivityData, data);
-            magicJS.data.write(HbcpreConstKey.exchangeActivityId, data.eventsId);
-            magicJS.data.write(HbcpreConstKey.exchangeActivityName, data.eventsName);
+            saveActivitDataCache(3, data);
             magicJS.notification.post(scriptName, "", `🎉[兑换]<${data.eventsName}>采集成功!`);
         }
     }

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików