shawenguan 1 年間 前
コミット
dcb3e3606e
3 ファイル変更96 行追加5 行削除
  1. 28 0
      BoxJsSub/hbcpre.json
  2. 67 4
      Scripts/hbcpre/hbcpreComposite.js
  3. 1 1
      Scripts/hbcpre/hbcpreExchange.js

+ 28 - 0
BoxJsSub/hbcpre.json

@@ -289,6 +289,34 @@
                     "desc": "当前合成名称"
                 },
                 {
+                    "id": "HbcpreCompositeEntryTitleList",
+                    "name": "合成功能入口名称选择",
+                    "val": "",
+                    "type": "checkboxes",
+                    "desc": "合成功能入口名称选择",
+                    "items": [
+                        {
+                            "key": "item1",
+                            "label": "合成活动"
+                        },
+                        {
+                            "key": "item2",
+                            "label": "限量合成"
+                        },
+                        {
+                            "key": "item3",
+                            "label": "好运合成"
+                        }
+                    ]
+                },
+                {
+                    "id": "HbcpreCompositeEntryTitleCustom",
+                    "name": "合成功能入口名称自定义",
+                    "val": "",
+                    "type": "text",
+                    "desc": "当前合成名称"
+                },
+                {
                     "id": "HbcpreCompositeActivityData",
                     "name": "活动列表",
                     "val": "{}",

+ 67 - 4
Scripts/hbcpre/hbcpreComposite.js

@@ -26,6 +26,8 @@ const HbcpreConstKey = {
     compositeActivityData: 'HbcpreCompositeActivityData',
     compositeActivityId: 'HbcpreCompositeActivityId',
     compositeActivityName: 'HbcpreCompositeActivityName',
+    compositeEntryTitleList: 'HbcpreCompositeEntryTitleList',
+    compositeEntryTitleCustom: 'HbcpreCompositeEntryTitleCustom',
 };
 
 const gUserAgent = `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`;
@@ -176,7 +178,7 @@ function getWillCompositeTaskIds() {
 }
 
 function getWillCompositeTaskSearchKeys() {
-    let keyArr = magicJS.data.read(HbcpreConstKey.compositeActivityName)
+    let keyArr = magicJS.data.read(HbcpreConstKey.compositeActivityName);
     if (keyArr && keyArr.length > 0) {
         let segments = keyArr.split('|');
         keyArr = [];
@@ -203,9 +205,29 @@ function getActivityIdByName(activityName){
     return null;
 }
 
+function getHomeCompositeEntrySelectList(){
+    let retArr = magicJS.data.read(HbcpreConstKey.compositeEntryTitleList, []);
+    if (retArr && retArr.length > 0) {
+        let segments = retArr.split(',');
+        retArr = [];
+        for (let vstr of segments) {
+            retArr.push(vstr.trim());
+        }
+    }
+    let customStr = magicJS.data.read(HbcpreConstKey.compositeEntryTitleCustom, null);
+    if(customStr && customStr.length > 0){
+        customStr = customStr.trim();
+        if(customStr.length > 0){
+            retArr.push(customStr);
+        }
+    }
+    return retArr;
+}
+
 async function tryAllComposite() {
     let idsList = getWillCompositeTaskIds();
     if(idsList.length == 0){
+        magicJS.logger.info(`尝试通过活动名称匹配对应活动ID`);
         let namesList = getWillCompositeTaskSearchKeys();
         for(let name of namesList){
             let actId = getActivityIdByName(name);
@@ -215,8 +237,12 @@ async function tryAllComposite() {
         }
     }
     if(idsList.length == 0){
-        magicJS.logger.info(`缺少兑换活动ID`);
-        magicJS.notification.appendNotifyInfo(`❌兑换活动缺少相关参数!`);
+        magicJS.logger.info(`尝试通过入口名称匹配对应活动ID`);
+        idsList = await getActivityIdsByEntryTile();
+    }
+    if(idsList.length == 0){
+        magicJS.logger.info(`缺少合成活动ID`);
+        // magicJS.notification.appendNotifyInfo(`❌合成活动缺少相关参数!`);
         return;
     }
     for(let activityId of idsList){
@@ -276,6 +302,43 @@ async function tryOneComposite(activityId){
     return result;
 }
 
+async function getActivityIdsByEntryTile(){
+    let titleList = getHomeCompositeEntrySelectList();
+    if(titleList.length == 0){
+        return [];
+    }
+    let reqData = {};
+    let result = await hbRequest({API: '/mall/homepage/info', METHOD: 'get'}, reqData);
+    if (result.code != 200) {
+        return [];
+    }
+    let infoList = [];
+    let idsList = [];
+    let bannerList = result.data.bannerList || [];
+    for(let i=0; i < bannerList.length; i++){
+        const item = bannerList[i];
+        if(item.url.indexOf('http') == -1){
+            continue;
+        }
+        if(checkKeysInText(titleList, item.name)){
+            const params = magicJS.parseQueryStr(item.url);
+            params.name = item.name;
+            infoList.push(params);
+            idsList.push(params.id);
+        }
+    }
+    return idsList;
+}
+
+function checkKeysInText(keyList, text){
+    for(let key of keyList){
+        if(text.indexOf(key) > -1){
+            return true;
+        }
+    }
+    return false;
+}
+
 function readMySeriesOwnCntFakeData() {
     gItemCntRwDict = {};
     let text = magicJS.data.read(HbcpreConstKey.myOwnSeriesCntFakeData, null);
@@ -444,7 +507,7 @@ async function getCompositeList(id){
 
 async function startComposite(id, materials){
     let reqData = {eventsId: `${id}`, materials: materials};
-    magicJS.logger.error(JSON.stringify(reqData));
+    // magicJS.logger.error(JSON.stringify(reqData));
     let result = await hbRequest({API: '/mall/works/composite', METHOD: 'post'}, reqData);
     return result;
 }

+ 1 - 1
Scripts/hbcpre/hbcpreExchange.js

@@ -443,7 +443,7 @@ async function getCompositeList(id){
 
 async function startComposite(id, materials){
     let reqData = {eventsId: `${id}`, materials: materials};
-    magicJS.logger.error(JSON.stringify(reqData));
+    // magicJS.logger.error(JSON.stringify(reqData));
     let result = await hbRequest({API: '/mall/works/composite', METHOD: 'post'}, reqData);
     return result;
 }