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);
|
||||
}
|
||||
}
|
||||
|
||||
// 辅助函数:安全地解析 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
|
||||
@@ -50,6 +57,10 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
||||
// 如果配置列表不为空,遍历并添加到结果集合中
|
||||
uidConfigList.forEach(item => {
|
||||
// 将秘境顺序对象添加到列表中
|
||||
// 主逻辑优化
|
||||
if (item.day !== undefined) {
|
||||
item.day = parseDay(item.day);
|
||||
}
|
||||
autoFightOrderSet.add(item)
|
||||
})
|
||||
}
|
||||
@@ -73,9 +84,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 order = (() => {
|
||||
const rawOrder = arr[4]; // 获取原始值
|
||||
const rawOrder = arr[5]; // 获取原始值
|
||||
if (rawOrder == null || String(rawOrder).trim() === "") {
|
||||
return 0; // 若为空或无效值,默认返回 0
|
||||
}
|
||||
@@ -108,6 +120,7 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
||||
// 创建秘境顺序对象
|
||||
let autoFightOrder = {
|
||||
order: order, // 顺序值
|
||||
day: day,// 执行日期
|
||||
autoFight: autoFight // 秘境信息对象
|
||||
}
|
||||
// 将秘境顺序对象添加到列表中
|
||||
@@ -125,6 +138,10 @@ async function loadMode(Load, autoFightOrderSet, domainConfig) {
|
||||
// 如果配置列表不为空,遍历并添加到结果集合中
|
||||
uidConfigListBgiTools.forEach(item => {
|
||||
// 将秘境顺序对象添加到列表中
|
||||
// 主逻辑优化
|
||||
if (item.day !== undefined) {
|
||||
item.day = parseDay(item.day);
|
||||
}
|
||||
autoFightOrderSet.add(item)
|
||||
})
|
||||
}
|
||||
@@ -189,7 +206,7 @@ async function main() {
|
||||
}
|
||||
// 获取秘境配置
|
||||
let domainConfig = config.domain.config;
|
||||
//"队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日|执行顺序,..."
|
||||
//"队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日|周几执行(0-6)不填默认执行|执行顺序,..."
|
||||
const autoFightOrderList = initDomainOrderList(domainConfig);
|
||||
autoFightOrderList.sort((a, b) => b.order - a.order)
|
||||
await autoDomainList(autoFightOrderList);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
{
|
||||
"name": "domain_config",
|
||||
"type": "input-text",
|
||||
"label": "自动秘境计划配置\n语法:队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日(1-3和本体的一致)|执行顺序(越大越先执行),...\n(无配置可留空如||唯有秘境名称配置不可为空)\n如: 速刷|苍白的遗荣|1||9",
|
||||
"label": "自动秘境计划配置\n语法:队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日(1-3和本体的一致)|周几执行(0-6)不填默认执行|执行顺序(越大越先执行),...\n(无配置可留空如||唯有秘境名称配置不可为空)\n如: 速刷|苍白的遗荣|1|||9",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
|
||||
@@ -28,7 +28,29 @@ async function ocrRegion(x = 0,
|
||||
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 {
|
||||
ocrRegion
|
||||
ocrRegion,
|
||||
getDayOfWeek
|
||||
}
|
||||
Reference in New Issue
Block a user