Files
bettergi-scripts-list/repo/js/ActivitySwitchNotice/main.js
云端客 a3de5b65d6 [0.0.4迭代]活动期限/周本通知器 (#2604)
* feat(notice): 添加WebSocket独立通知功能并重构通知系统

- 实现WebSocket通知功能,支持私聊和群聊模式
- 添加通知类型配置选项,支持BGI通知、独立通知或两者同时使用
- 新增WebSocket相关配置项包括代理URL、连接地址和认证令牌
- 重构通知发送逻辑,支持多种通知类型的消息格式
- 添加@用户功能和多种消息类型支持
- 更新manifest.json添加网络请求权限配置
- 优化代码结构,使用异步初始化加载工具模块

* feat(ActivitySwitchNotice): 添加独立通知功能支持WebSocket推送

- 新增独立通知配置功能,支持通过WebSocket发送通知
- 新增ws.js模块实现WebSocket通知功能
- 新增noticeType配置选项用于选择通知模式
- 新增ws_proxy_url、ws_url、ws_token配置选项
- 新增action、send_id、at_list配置选项用于发送设置
- 更新README文档添加独立通知配置说明和使用要求
- 修复OCR识别函数名称从OcrRemainingTime改为OcrKey

* fix(ActivitySwitchNotice): 修复设置选项数组格式

- 修复了通知模式选项数组中缺少逗号的问题
- 确保JSON格式正确性以避免解析错误

* refactor(notice): 重构通知工具类并修复配置引用问题

- 将 noticeUtil.send 方法重命名为 sendText 以明确功能
- 修复配置对象引用问题,将 config 重命名为 configNotice 避免冲突
- 为 sendNotice 函数添加默认参数和调试日志
- 更新条件判断逻辑,使用 map.size 检查空值
- 修复 ws 模块中的配置对象引用,将 config 重命名为 configWs
- 重构 ws 模块初始化逻辑,确保配置正确加载
- 修复变量命名冲突,将 token 参数重命名为 wsToken
- 更新模块初始化顺序,调整 activity 工具的加载位置

* docs(ActivitySwitchNotice): 更新文档说明独立通知配置和WsProxy部署

- 更新独立通知功能说明,添加WsProxy依赖提示
- 简化settings.json文件路径引用
- 移除多余的配置示例分隔符
- 添加WsProxy部署指南和Docker镜像使用说明
- 整理文档结构,优化内容排版

* docs(ActivitySwitchNotice): 更新 README 文档完善功能说明和配置选项

- 添加了独立通知功能的详细配置说明
- 更新了设置表格格式和内容描述
- 增加了 WsProxy 部署指南和 Docker 配置示例
- 完善了核心模块和配置选项文档
- 修正了文档格式和链接引用问题

* docs(ActivitySwitchNotice): 更新 README 文档中的链接和函数名

- 修复 settings.json 链接格式
- 将 send 函数名更正为 sendText

* chore(ActivitySwitchNotice): 更新版本号

- 将版本号从 0.0.3 更新到 0.4
- 保持其他配置项不变

* docs(ActivitySwitchNotice): 更新版本历史文档

- 将版本 0.0.4 的发布状态更新为具体发布日期 2026-01-01
- 保持独立通知配置功能说明
- 保留 WebSocket 通知功能描述
- 维护版本历史记录的准确性
2026-01-01 20:20:44 +08:00

58 lines
1.3 KiB
JavaScript

async function init() {
let utils=[
"ws",
"notice",
"campaignArea",
"activity",
]
for (let util of utils) {
eval(file.readTextSync(`utils/${util}.js`));
}
log.info("main 初始化完成");
}
// 判断是否在主界面的函数
const isInMainUI = () => {
let captureRegion = captureGameRegion();
let res = captureRegion.Find(RecognitionObject.TemplateMatch(
file.ReadImageMatSync("assets/paimon_menu.png"),
0,
0,
640,
216
));
captureRegion.dispose();
return !res.isEmpty();
};
async function toMainUi() {
let ms = 300
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 () {
await init();
if (settings.toMainUi){
await toMainUi();
}
await main();
await toMainUi();
})();
/**
* @returns {Promise<void>}
*/
async function main() {
await campaignAreaUtil.campaignAreaMain()
await toMainUi()
await activityUtil.activityMain()
}