From 841d966a68ddf550166af417b420f6683447d2ac Mon Sep 17 00:00:00 2001 From: yan Date: Mon, 9 Feb 2026 22:42:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(AutoPlanDomain):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=A4=9A=E6=97=A5=E6=9C=9F=E6=89=A7=E8=A1=8C=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将单日期执行配置改为多日期数组配置,支持多个执行日期 - 修改数据结构从 day 字段改为 days 数组字段存储执行日期 - 更新日期解析逻辑,支持通过 "/" 分割符配置多个执行日期 - 调整过滤条件以匹配新的多日期数组格式 - 更新 README 文档说明多日期配置的使用方法 - 修改示例配置展示多日期功能的使用场景 --- repo/js/AutoPlanDomain/README.md | 20 ++++++++-------- repo/js/AutoPlanDomain/main.js | 39 +++++++++++++++++++++----------- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/repo/js/AutoPlanDomain/README.md b/repo/js/AutoPlanDomain/README.md index e6fdf7be9..fd0b83018 100644 --- a/repo/js/AutoPlanDomain/README.md +++ b/repo/js/AutoPlanDomain/README.md @@ -41,19 +41,19 @@ **字段详解** -| 位置 | 字段 | 是否必填 | 说明 | 示例 | -|:---:|:---:|:---:|:---:|:---:| -| 1 | 队伍名称 | 可选 | BetterGI 中已保存的队伍名称(用于切换队伍) | 速刷 / 雷国 / 国家队 | -| 2 | 秘境名称/刷取物品名称 | **必填** | 与 BetterGI 自动秘境识别的名称保持一致 | 苍白的遗荣 / 炽烈的炎之魔女 / 辰砂往生录 | -| 3 | 刷几轮 | 可选 | 整数,执行几轮(每轮 = 1次完整秘境) | 3 / 5 / 10 | -| 4 | 限时/周日 | 可选 | 1=周一~周六可用、2=周日可用、3=仅周日、留空=不限制 | 1 / 2 / 3 | -| 5 | 周几执行(0-6) | 可选 | 0=周日,1=周一,...,6=周六;不填=每天都可执行 | 0 / 3 | -| 6 | 执行顺序 | 可选 | 数字越大越优先执行(同时间点先跑优先级高的) | 9 / 5 / 1 | +| 位置 | 字段 | 是否必填 | 说明 | 示例 | +|:---:|:---:|:---:|:--------------------------------------:|:-----------------------:| +| 1 | 队伍名称 | 可选 | BetterGI 中已保存的队伍名称(用于切换队伍) | 速刷 / 雷国 / 国家队 | +| 2 | 秘境名称/刷取物品名称 | **必填** | 与 BetterGI 自动秘境识别的名称保持一致 | 苍白的遗荣 / 炽烈的炎之魔女 / 辰砂往生录 | +| 3 | 刷几轮 | 可选 | 整数,执行几轮(每轮 = 1次完整秘境) | 3 / 5 / 10 | +| 4 | 限时/周日 | 可选 | 1=周一~周六可用、2=周日可用、3=仅周日、留空=不限制 | 1 / 2 / 3 | +| 5 | 周几执行(0-6) | 可选 | 0=周日,1=周一,...,6=周六;可多选按`/`分割,不填=每天都可执行 | 0/3,3 | +| 6 | 执行顺序 | 可选 | 数字越大越优先执行(同时间点先跑优先级高的) | 9 / 5 / 1 | **配置示例** ``` -速刷|苍白的遗荣|3|1||9, # 优先级最高,每天刷3轮遗荣 +速刷|苍白的遗荣|3|1|0/3|9, # 优先级最高,周日,周三刷3轮遗荣 国家队|炽烈的炎之魔女|5|||5, # 优先级次之,每天刷5轮魔女 雷国|无想之刃狭间|2|2|0|2 # 只在周日刷,优先级较低 ``` @@ -63,7 +63,7 @@ [ { "order": 1, // 顺序值 - "day": 0,// 执行日期 + "days": [0],// 执行日期 "autoFight": { "domainName": undefined,//秘境名称 "partyName": undefined,//队伍名称 diff --git a/repo/js/AutoPlanDomain/main.js b/repo/js/AutoPlanDomain/main.js index 1bb2920e4..cb88fbaa5 100644 --- a/repo/js/AutoPlanDomain/main.js +++ b/repo/js/AutoPlanDomain/main.js @@ -61,8 +61,12 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) { uidConfigList.forEach(item => { // 将秘境顺序对象添加到列表中 // 主逻辑优化 - if (item.day !== undefined) { - item.day = parseDay(item.day); + // if (item.day !== undefined) { + // item.day = parseDay(item.day); + // } + if (item.days && item.days.length > 0) { + item.days = item.days.map(day => parseDay(day)).filter(day => day !== undefined) + // item.day = parseDay(item.day); } autoFightOrderSet.add(item) }) @@ -87,7 +91,10 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) { let domainName = arr[1]; // 解析秘境名称 let domainRoundNum = arr[2]; // 解析副本轮数 let sundaySelectedValue = arr[3]; // 解析周日|限时选择的值 - let day = arr[4].trim() != "" ? parseInt(arr[4]) : undefined; + // let day = arr[4].trim() != "" ? parseInt(arr[4]) : undefined; + let days = arr[4].trim() !== "" + ? arr[4].split('/').map(d => parseInt(d.trim())).filter(d => !isNaN(d)) + : []; // 解析顺序值,处理可能的无效值 let order = (() => { const rawOrder = arr[5]; // 获取原始值 @@ -123,7 +130,8 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) { // 创建秘境顺序对象 let autoFightOrder = { order: order, // 顺序值 - day: day,// 执行日期 + // day: day,// 执行日期 + days: days, // 执行日期(数组) autoFight: autoFight // 秘境信息对象 } // 将秘境顺序对象添加到列表中 @@ -136,14 +144,15 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) { case LoadType.bgi_tools: // 通过bgi_tools方式加载配置 log.info(`开始拉取bgi_tools配置`) - const uidConfigListBgiTools = await pullJsonConfig(config.user.uid + '',config.bgi_tools.api.httpPullJsonConfig) || [] + const uidConfigListBgiTools = await pullJsonConfig(config.user.uid + '', config.bgi_tools.api.httpPullJsonConfig) || [] if (uidConfigListBgiTools?.length > 0) { // 如果配置列表不为空,遍历并添加到结果集合中 uidConfigListBgiTools.forEach(item => { // 将秘境顺序对象添加到列表中 // 主逻辑优化 - if (item.day !== undefined) { - item.day = parseDay(item.day); + if (item.days && item.days.length > 0) { + item.days = item.days.map(day => parseDay(day)).filter(day => day !== undefined) + // item.day = parseDay(item.day); } autoFightOrderSet.add(item) }) @@ -186,8 +195,11 @@ async function initDomainOrderList(domainConfig) { let from = Array.from(autoFightOrderSet); let dayOfWeek = getDayOfWeek(); from = from.filter(item => { - if (item.day) { - return item.day === dayOfWeek.day + // if (item.day) { + // return item.day === dayOfWeek.day + // } + if (item.days && item.days.length > 0) { + return item.days.includes(dayOfWeek.day); } return true }) @@ -214,7 +226,7 @@ async function main() { await init(); if (config.bgi_tools.open.open_push) { log.info(`开始推送bgi_tools配置`) - await pushAllJsonConfig(JSON.parse(file.readTextSync(config.path.domain)),config.bgi_tools.api.httpPushAllJsonConfig) + await pushAllJsonConfig(JSON.parse(file.readTextSync(config.path.domain)), config.bgi_tools.api.httpPushAllJsonConfig) } // 获取秘境配置 let domainConfig = config.domain.config; @@ -225,6 +237,7 @@ async function main() { } await main() + async function test() { await init(); const text = file.readTextSync(config.path.domain); @@ -232,9 +245,9 @@ async function test() { // log.info("text:{1}",text) const list = JSON.parse(text); // log.info("list:{1}",list) - log.info("httpPullJsonConfig:{1}",JSON.parse(JSON.stringify(config.bgi_tools)).api.httpPushAllJsonConfig) - log.info("|test==>config.bgi_tools:{1}",JSON.stringify(config.bgi_tools)) - await pushAllJsonConfig(list,config.bgi_tools.api.httpPushAllJsonConfig) + log.info("httpPullJsonConfig:{1}", JSON.parse(JSON.stringify(config.bgi_tools)).api.httpPushAllJsonConfig) + log.info("|test==>config.bgi_tools:{1}", JSON.stringify(config.bgi_tools)) + await pushAllJsonConfig(list, config.bgi_tools.api.httpPushAllJsonConfig) } // await test() \ No newline at end of file