From 55e3bdd67216916371f04e2cfee12fe03dd4a3a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E7=AB=AF=E5=AE=A2?= <107686912+Kirito520Asuna@users.noreply.github.com> Date: Wed, 7 Jan 2026 13:28:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(ActivitySwitchNotice):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9EUID=E8=AF=86=E5=88=AB=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=80=9A=E7=9F=A5=E5=86=85=E5=AE=B9=20(#2632?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repo/js/ActivitySwitchNotice/README.md | 5 + repo/js/ActivitySwitchNotice/main.js | 1 + repo/js/ActivitySwitchNotice/manifest.json | 2 +- repo/js/ActivitySwitchNotice/md/0.0.6.jpg | Bin 0 -> 29079 bytes .../js/ActivitySwitchNotice/utils/activity.js | 3 +- .../utils/campaignArea.js | 5 +- repo/js/ActivitySwitchNotice/utils/uid.js | 145 ++++++++++++++++++ 7 files changed, 157 insertions(+), 4 deletions(-) create mode 100644 repo/js/ActivitySwitchNotice/md/0.0.6.jpg create mode 100644 repo/js/ActivitySwitchNotice/utils/uid.js diff --git a/repo/js/ActivitySwitchNotice/README.md b/repo/js/ActivitySwitchNotice/README.md index 0ee2ce58b..8aad410e6 100644 --- a/repo/js/ActivitySwitchNotice/README.md +++ b/repo/js/ActivitySwitchNotice/README.md @@ -382,6 +382,11 @@ ActivitySwitchNotice/ ## 版本历史 +### 0.0.6 (2026-01-06) +- **功能优化**:新增识别uid通知提醒 +实例: +![0.0.6](md/0.0.6.jpg) + ### 0.0.5 (2026-01-04) - **性能优化**:优化滚动到顶部算法,减少页面滚动次数,提升初始化效率 diff --git a/repo/js/ActivitySwitchNotice/main.js b/repo/js/ActivitySwitchNotice/main.js index 839bab2ce..2a5292d66 100644 --- a/repo/js/ActivitySwitchNotice/main.js +++ b/repo/js/ActivitySwitchNotice/main.js @@ -1,6 +1,7 @@ let manifest = {}; async function init() { let utils=[ + "uid", "ws", "notice", "campaignArea", diff --git a/repo/js/ActivitySwitchNotice/manifest.json b/repo/js/ActivitySwitchNotice/manifest.json index a9fc6ec55..e066fd741 100644 --- a/repo/js/ActivitySwitchNotice/manifest.json +++ b/repo/js/ActivitySwitchNotice/manifest.json @@ -1,6 +1,6 @@ { "name": "活动期限/周本通知器", - "version": "0.0.5", + "version": "0.0.6", "description": "", "settings_ui": "settings.json", "main": "main.js", diff --git a/repo/js/ActivitySwitchNotice/md/0.0.6.jpg b/repo/js/ActivitySwitchNotice/md/0.0.6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bcca425cce65bc66a7984aa4b778b86d665f56a GIT binary patch literal 29079 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 literal 0 HcmV?d00001 diff --git a/repo/js/ActivitySwitchNotice/utils/activity.js b/repo/js/ActivitySwitchNotice/utils/activity.js index 5cb7071cd..44e1488f3 100644 --- a/repo/js/ActivitySwitchNotice/utils/activity.js +++ b/repo/js/ActivitySwitchNotice/utils/activity.js @@ -679,6 +679,7 @@ async function activityMain() { } // 7. 全部扫描完毕,统一发送通知(只发一次!) if (activityMapFilter.size > 0) { + let uid = await uidUtil.ocrUID() log.info(`扫描完成,共记录 {activityMap.size} 个活动,即将发送通知`, activityMapFilter.size); // 构建通知标题,根据配置显示剩余时间阈值和白名单活动信息 let titleKey = `[ `; @@ -703,7 +704,7 @@ async function activityMain() { blackText += `==>{已开启黑名单: ${blackAllText.join("|")}}<==` } - await noticeUtil.sendNotice(activityMapFilter, `原神活动剩余时间提醒(仅显示 ${titleKey} 的活动)${blackText}`); + await noticeUtil.sendNotice(activityMapFilter, `UID:${uid}\n原神活动剩余时间提醒(仅显示 ${titleKey} 的活动)${blackText}`); } else { log.warn("不存在符合条件的活动,未发送通知"); } diff --git a/repo/js/ActivitySwitchNotice/utils/campaignArea.js b/repo/js/ActivitySwitchNotice/utils/campaignArea.js index 841391a22..dc24664f4 100644 --- a/repo/js/ActivitySwitchNotice/utils/campaignArea.js +++ b/repo/js/ActivitySwitchNotice/utils/campaignArea.js @@ -88,7 +88,7 @@ async function campaignAreaMain() { // 如果不是周日(0代表周日),则直接返回 const bool = dayOfWeek.day != config.campaignAreaReminderDay; // 记录开始执行秘境征讨提醒的日志 - log.info(`[{dayOfWeek.dayOfWeek}],${bool?"跳过":"开始"}执行秘境征讨剩余次数提醒`, dayOfWeek.dayOfWeek) + log.info(`[{dayOfWeek.dayOfWeek}],${bool ? "跳过" : "开始"}执行秘境征讨剩余次数提醒`, dayOfWeek.dayOfWeek) if (bool) { return } @@ -110,8 +110,9 @@ async function campaignAreaMain() { // 如果有剩余次数,则记录日志并发送通知 if (weekJson.count > 0) { + let uid = await uidUtil.ocrUID() log.info(`本周剩余消耗减半次数:${weekJson.count}`) - await noticeUtil.sendText(`>|本周剩余消耗减半次数:${weekJson.count}`, '秘境征讨') + await noticeUtil.sendText(`>|本周剩余消耗减半次数:${weekJson.count}`, `UID:${uid}\n秘境征讨`) } } diff --git a/repo/js/ActivitySwitchNotice/utils/uid.js b/repo/js/ActivitySwitchNotice/utils/uid.js new file mode 100644 index 000000000..955931f9c --- /dev/null +++ b/repo/js/ActivitySwitchNotice/utils/uid.js @@ -0,0 +1,145 @@ +const commonPath = 'assets/' +const commonMap = new Map([ + ['main_ui', { + path: `${commonPath}`, + name: 'paimon_menu', + type: '.png', + }], +]) +const genshinJson = { + width: 1920,//genshin.width, + height: 1080,//genshin.height, +} + +/** + * 根据键值获取JSON路径 + * @param {string} key - 要查找的键值 + * @returns {any} 返回与键值对应的JSON路径值 + */ +function getJsonPath(key) { + return commonMap.get(key); // 通过commonMap的get方法获取指定键对应的值 +} + +function saveOnlyNumber(str) { + str = str ? str : ''; + // 使用正则表达式匹配字符串中的所有数字 + // \d+ 匹配一个或多个数字 + // .join('') 将匹配到的数字数组连接成一个字符串 + // parseInt 将连接后的字符串转换为整数 + return parseInt(str.match(/\d+/g).join('')); +} + +async function ocrUID() { + let uid_json = { + x: 1683, + y: 1051, + width: 234, + height: 28, + } + let recognitionObjectOcr = RecognitionObject.Ocr(uid_json.x, uid_json.y, uid_json.width, uid_json.height); + let region3 = captureGameRegion() + try { + let res = region3.find(recognitionObjectOcr); + log.debug(`[OCR识别UID]识别结果: ${res.text}, 原始坐标: x=${res.x}, y=${res.y},width:${res.width},height:${res.height}`); + //只保留数字 + let uid + try { + uid = saveOnlyNumber(res.text) + } catch (e) { + log.warn(`识别uid异常:{ket}`, e.message) + uid = 0 + } + log.debug(`[OCR识别UID]识别结果: {uid}`, uid); + return uid + + } finally { + region3.Dispose() + } +} + +// 判断是否在主界面的函数 +const isInMainUI = () => { + // let name = '主界面' + let main_ui = getJsonPath('main_ui'); + // 定义识别对象 + let paimonMenuRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`${main_ui.path}${main_ui.name}${main_ui.type}`), + 0, + 0, + genshinJson.width / 3.0, + genshinJson.width / 5.0 + ); + let captureRegion = captureGameRegion(); + let res = captureRegion.find(paimonMenuRo); + captureRegion.Dispose() + return !res.isEmpty(); +}; + +async function toMainUi() { + let ms = 1000 + let index = 1 + await sleep(ms); + while (!isInMainUI()) { + await sleep(ms); + await genshin.returnMainUi(); // 如果未启用,则返回游戏主界面 + await sleep(ms); + if (index > 3) { + throw new Error(`多次尝试返回主界面失败`); + } + index += 1 + } + +} + +async function compareUid(UID = settings.uid) { + let uid = await ocrUID() + let setUid = 0 + try { + setUid = saveOnlyNumber(UID) + } catch (e) { + // log.warn(`UID未设置`) + } + let compare = uid === setUid + if (compare) { + log.debug(`[OCR识别UID]识别结果: {uid} 与设置UID相同`, uid); + } + return compare +} + +async function checkUid() { + let reJson = { + inMainUI: false, + isUid: false + } + if (isInMainUI()) { + reJson.isUid = await compareUid() + } + return reJson +} + +async function check() { + let check = false + if (settings.uid) { + try { + await toMainUi(); + } catch (e) { + log.warn("多次尝试返回主界面失败") + } + let checkJson = await checkUid() + if ((!checkJson.inMainUI) && (!checkJson.isUid)) { + //尝试直接识别 + checkJson.isUid = await compareUid() + } + check = checkJson.isUid + } + return check +} + +this.uidUtil = { + toMainUi, + isInMainUI, + checkUid, + ocrUID, + check, + compareUid, +} \ No newline at end of file