mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-30 05:49:51 +08:00
feat(AutoPlanDomain): 添加秘境配置按日期执行功能
- 新增 parseDay 辅助函数用于安全解析 day 字段 - 在配置加载过程中对 day 字段进行解析和验证 - 解析输入数据时新增 day 字段支持并调整索引位置 - 在秘境顺序对象中添加 day 执行日期字段 - 更新配置字符串格式说明文档 - 新增 getDayOfWeek 工具函数获取当前星期信息 - 添加星期几执行的逻辑判断功能
This commit is contained in:
@@ -31,7 +31,14 @@ async function autoDomainList(autoDomainOrderList) {
|
|||||||
await autoDomain(item.autoFight);
|
await autoDomain(item.autoFight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 辅助函数:安全地解析 day 字段
|
||||||
|
function parseDay(day) {
|
||||||
|
if (day == null || String(day).trim() === "") {
|
||||||
|
return undefined; // 空值或无效值返回 undefined
|
||||||
|
}
|
||||||
|
const parsedDay = parseInt(String(day).trim(), 10);
|
||||||
|
return isNaN(parsedDay) ? undefined : parsedDay; // 非法数字返回 undefined
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 根据不同的加载方式加载秘境配置
|
* 根据不同的加载方式加载秘境配置
|
||||||
* @param {string} Load - 加载方式类型,如uid或input
|
* @param {string} Load - 加载方式类型,如uid或input
|
||||||
@@ -50,6 +57,10 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
|||||||
// 如果配置列表不为空,遍历并添加到结果集合中
|
// 如果配置列表不为空,遍历并添加到结果集合中
|
||||||
uidConfigList.forEach(item => {
|
uidConfigList.forEach(item => {
|
||||||
// 将秘境顺序对象添加到列表中
|
// 将秘境顺序对象添加到列表中
|
||||||
|
// 主逻辑优化
|
||||||
|
if (item.day !== undefined) {
|
||||||
|
item.day = parseDay(item.day);
|
||||||
|
}
|
||||||
autoFightOrderSet.add(item)
|
autoFightOrderSet.add(item)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -73,9 +84,10 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
|||||||
let domainName = arr[1]; // 解析秘境名称
|
let domainName = arr[1]; // 解析秘境名称
|
||||||
let domainRoundNum = arr[2]; // 解析副本轮数
|
let domainRoundNum = arr[2]; // 解析副本轮数
|
||||||
let sundaySelectedValue = arr[3]; // 解析周日|限时选择的值
|
let sundaySelectedValue = arr[3]; // 解析周日|限时选择的值
|
||||||
|
let day = arr[4].trim() != "" ? parseInt(arr[4]) : undefined;
|
||||||
// 解析顺序值,处理可能的无效值
|
// 解析顺序值,处理可能的无效值
|
||||||
let order = (() => {
|
let order = (() => {
|
||||||
const rawOrder = arr[4]; // 获取原始值
|
const rawOrder = arr[5]; // 获取原始值
|
||||||
if (rawOrder == null || String(rawOrder).trim() === "") {
|
if (rawOrder == null || String(rawOrder).trim() === "") {
|
||||||
return 0; // 若为空或无效值,默认返回 0
|
return 0; // 若为空或无效值,默认返回 0
|
||||||
}
|
}
|
||||||
@@ -108,6 +120,7 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
|||||||
// 创建秘境顺序对象
|
// 创建秘境顺序对象
|
||||||
let autoFightOrder = {
|
let autoFightOrder = {
|
||||||
order: order, // 顺序值
|
order: order, // 顺序值
|
||||||
|
day: day,// 执行日期
|
||||||
autoFight: autoFight // 秘境信息对象
|
autoFight: autoFight // 秘境信息对象
|
||||||
}
|
}
|
||||||
// 将秘境顺序对象添加到列表中
|
// 将秘境顺序对象添加到列表中
|
||||||
@@ -125,6 +138,10 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
|||||||
// 如果配置列表不为空,遍历并添加到结果集合中
|
// 如果配置列表不为空,遍历并添加到结果集合中
|
||||||
uidConfigListBgiTools.forEach(item => {
|
uidConfigListBgiTools.forEach(item => {
|
||||||
// 将秘境顺序对象添加到列表中
|
// 将秘境顺序对象添加到列表中
|
||||||
|
// 主逻辑优化
|
||||||
|
if (item.day !== undefined) {
|
||||||
|
item.day = parseDay(item.day);
|
||||||
|
}
|
||||||
autoFightOrderSet.add(item)
|
autoFightOrderSet.add(item)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -189,7 +206,7 @@ async function main() {
|
|||||||
}
|
}
|
||||||
// 获取秘境配置
|
// 获取秘境配置
|
||||||
let domainConfig = config.domain.config;
|
let domainConfig = config.domain.config;
|
||||||
//"队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日|执行顺序,..."
|
//"队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日|周几执行(0-6)不填默认执行|执行顺序,..."
|
||||||
const autoFightOrderList = initDomainOrderList(domainConfig);
|
const autoFightOrderList = initDomainOrderList(domainConfig);
|
||||||
autoFightOrderList.sort((a, b) => b.order - a.order)
|
autoFightOrderList.sort((a, b) => b.order - a.order)
|
||||||
await autoDomainList(autoFightOrderList);
|
await autoDomainList(autoFightOrderList);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
{
|
{
|
||||||
"name": "domain_config",
|
"name": "domain_config",
|
||||||
"type": "input-text",
|
"type": "input-text",
|
||||||
"label": "自动秘境计划配置\n语法:队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日(1-3和本体的一致)|执行顺序(越大越先执行),...\n(无配置可留空如||唯有秘境名称配置不可为空)\n如: 速刷|苍白的遗荣|1||9",
|
"label": "自动秘境计划配置\n语法:队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日(1-3和本体的一致)|周几执行(0-6)不填默认执行|执行顺序(越大越先执行),...\n(无配置可留空如||唯有秘境名称配置不可为空)\n如: 速刷|苍白的遗荣|1|||9",
|
||||||
"default": ""
|
"default": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,7 +28,29 @@ async function ocrRegion(x = 0,
|
|||||||
region3.Dispose()
|
region3.Dispose()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取当前日期的星期信息
|
||||||
|
* @returns {Object} 返回包含星期数字和星期名称的对象
|
||||||
|
*/
|
||||||
|
async function getDayOfWeek() {
|
||||||
|
// 获取当前日期对象
|
||||||
|
const today = new Date();
|
||||||
|
// 获取当前日期是星期几(0代表星期日,1代表星期一,以此类推)
|
||||||
|
const day = today.getDay();
|
||||||
|
// 创建包含星期名称的数组
|
||||||
|
const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
|
||||||
|
let weekDay = `${weekDays[day]}`;
|
||||||
|
|
||||||
|
log.debug(`今天是[{day}]`, day)
|
||||||
|
log.debug(`今天是[{weekDays}]`, weekDay)
|
||||||
|
// 返回包含星期数字和对应星期名称的对象
|
||||||
|
return {
|
||||||
|
day: day,
|
||||||
|
dayOfWeek: weekDay
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
ocrRegion
|
ocrRegion,
|
||||||
|
getDayOfWeek
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user