Files
bettergi-scripts-list/repo/js/ActivitySwitchNotice/utils/HolyRelics.js
云端客 9fdefe24c2 main-asn (#3156)
* refactor(ActivitySwitchNotice): 优化通知配置构建逻辑

- 将 configNotice 变量改为 let 声明以支持动态更新
- 新增 async 函数 buildConfigNotice 用于构建通知配置
- 在 sendNotice 函数中调用 buildConfigNotice 确保配置最新
- 在 sendText 函数中添加 buildConfigNotice 调用保证配置同步

* refactor(utils): 导出工具函数并移除全局挂载

- 将 activity.js 中的 activityMain 函数改为导出函数
- 将 campaignArea.js 中的 ocrDailyCommission、ocrWeeklyCount、campaignAreaMain、dailyCommissionMain 函数改为导出函数
- 将 mapMission.js 中的 ocrMapMission、openMap、mapMission 函数改为导出函数
- 将 tool.js 中的 findTextAndClick、getDayOfWeek 函数改为导出函数
- 将 uid.js 中的 saveOnlyNumber、ocrUID、compareUid、checkUid、check 函数改为导出函数
- 将 ws.js 中的 send、sendText 函数改为导出函数
- 移除所有 utils 文件中对 this 对象的挂载操作
- 在 main.js 中导入新的工具函数并移除重复定义的函数

* fix(ActivitySwitchNotice): 修复圣遗物空间检查功能中的显示和逻辑问题

- 修正圣遗物空间不足提醒消息中的标点符号格式
- 修复圣遗物空间阈值错误日志中的数字格式
- 移除不必要的延时操作以优化执行效率
- 调整代码结构以提高运行性能

fix(ActivitySwitchNotice): 修复圣遗物空间检查功能中的显示和逻辑问题

- 修正圣遗物空间不足提醒消息中的标点符号格式
- 修复圣遗物空间阈值错误日志中的数字格式
- 移除不必要的延时操作以优化执行效率
- 调整代码结构以提高运行性能

refactor(ActivitySwitchNotice): 优化圣遗物检查功能中的延迟配置

- 将硬编码的延迟时间替换为可配置的常量
- 统一延迟时间管理,提高代码可维护性
- 保持原有功能逻辑不变的情况下提升代码质量

feat(ActivitySwitchNotice): 更新版本并新增圣遗物空间检测提醒功能

- 将插件版本从 0.1.3 更新至 0.1.5
- 新增圣遗物剩余空间检测提醒功能
- 在版本历史中添加 0.1.5 版本记录

fix(ActivitySwitchNotice): 修复圣遗物剩余空间阈值解析错误

- 添加 try-catch 块处理 parseInt 异常情况
- 当阈值格式错误时默认使用 400 的阈值
- 添加警告日志记录格式错误的阈值设置
- 确保程序在无效配置下仍能正常运行

feat(bag): 添加圣遗物背包空间检查功能

- 新增 HolyRelics.js 工具模块实现圣遗物数量检查逻辑
- 集成 OCR 识别功能用于获取圣遗物数量信息
- 添加背包空间不足提醒功能,可自定义阈值
- 在 main.js 中集成圣遗物检查流程
- 添加新的配置选项包括打开背包按键和圣遗物阈值设置
- 扩展工具类增加 findText、findImg 和 OcrFind 等通用识别方法
- 实现自动打开背包并处理过期物品弹窗功能

* fix(HolyRelics): 修复圣遗物背包空间检测功能

- 添加了进入圣遗物背包的点击状态验证,避免无法进入时继续执行
- 增强了OCR文本解析逻辑,添加了字符串分割长度验证和数值解析校验
- 优化了阈值参数解析,在main.js中添加了更安全的数值转换和错误处理
- 修复了工具函数中资源释放问题,在isInMainUI函数中使用try-finally确保资源被正确释放
- 更新了提醒消息文本,明确标识阈值设置参数
2026-04-25 12:28:42 +08:00

59 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import {toMainUi, openBag, findImgAndClick, OcrFind, findText} from "./tool";
import {sendText} from "./notice"
/**
* 检查圣遗物背包中剩余空间是否达到阈值,如果达到阈值则发送提醒
* @param {number} threshold - 圣遗物数量差阈值默认为400
*/
export async function checkHolyRelicsKey(threshold = 400) {
const ms = 300
log.info("开始圣遗物数量检查") // 记录开始检查圣遗物数量
// const threshold = settings.threshold || 100 // 注释掉的阈值设置代码
await openBag() // 打开背包
await sleep(ms)
const textFind = await findText("圣遗物"); // 查找"圣遗物"文本
log.debug("textFind:" + textFind) // 记录查找结果
if (textFind === null) { // 如果未找到"圣遗物"文本
await sleep(ms) // 等待1秒
log.info("进入圣遗物背包") // 记录准备进入圣遗物背包
// 点击圣遗物背包
const clicked = await findImgAndClick('assets/holyRelics.jpg')
if (!clicked) {
log.error("未能点击进入圣遗物背包,终止检查")
return
} // 通过图片点击进入圣遗物背包
}
log.info("已进入圣遗物背包") // 记录已进入圣遗物背包
await sleep(ms)
const OcrText = await OcrFind(1612, 34, 192, 31); // 使用OCR识别指定区域的文本
if (!(OcrText?.text)) { // 如果OCR识别失败
log.error("识别异常") // 记录错误信息
return // 返回,终止函数执行
}
const text = OcrText.text.trim() // 去除识别文本的前后空格
const HolyRelics = text.replace(/[^0-9/]/g, '') // 只保留数字和斜杠
const strings = HolyRelics.split('/', 2); // 按斜杠分割字符串
if (strings.length < 2) {
log.error(`圣遗物数量解析失败OCR 原始文本:${text}`)
return
}
const count = parseInt(strings[0], 10);// 解析当前数量
const total = parseInt(strings[1], 10);// 解析总容量
if (!Number.isFinite(count) || !Number.isFinite(total)) {
log.error(`圣遗物数量解析异常count=${count}, total=${total}, 原文本:${text}`)
return
}
const diff = total - count // 计算剩余空间数量
log.debug(`text:${text}`) // 记录原始识别文本
log.debug(`HolyRelics:${HolyRelics}`) // 记录处理后的文本
log.debug(`count:${count}`) // 记录当前数量
log.debug(`total:${total}`) // 记录总容量
log.debug(`diff:${diff}`) // 记录剩余空间数量
if (diff <= threshold) { // 如果剩余空间小于等于阈值
log.info(`背包圣遗物数量:${count}/${total},相差${diff}个,<=${threshold}个,提醒清理`) // 记录需要清理的信息
// 发送提醒消息
await sendText(`背包圣遗物 剩余空间不足(设置阈值):${threshold},剩余:${diff},请前往清理!`, "背包圣遗物剩余空间检查") // 发送提醒文本
}
}