(适配 https://github.com/babalae/better-genshin-impact/pull/3069) feat(ActivitySwitchNotice): 实现单例模式配置唯一实例 (#3154)

This commit is contained in:
云端客
2026-04-23 12:42:13 +08:00
committed by GitHub
parent feabfe2cc7
commit d8f4afbbf3
3 changed files with 42 additions and 0 deletions

View File

@@ -511,6 +511,9 @@ ActivitySwitchNotice/
## 版本历史
### 0.1.4 (2026-04-23)
- 单例模式 配置唯一实例
### 0.1.3 (2026-03-28)
- 修复异常配置导致无法运行
### 0.1.2 (2026-03-23)

View File

@@ -435,7 +435,24 @@ async function OcrKey(activityName, key = "剩余时间", ocrRegion = ocrRegionC
}
}
async function buildInitConfigSettings() {
config = {
//剩余时间,白名单 启用`和`关系(默认`与`关系)
relationship: settings.relationship,
whiteActivityNameList: parseWhiteActivity(settings.whiteActivityNameList),
activityKey: (settings.activityKey ? settings.activityKey : 'F5'),
toTopCount: settingsParseInt(settings.toTopCount, 10),//滑动到顶最大尝试次数
scrollPageCount: settingsParseInt(settings.scrollPageCount, 4),//滑动次数/页
notifyHoursThreshold: settingsParseInt(settings.notifyHoursThreshold, 8760),//剩余时间阈值(默认 8760小时=365天)
// 黑名单活动名称列表,这些活动将被排除在识别和处理之外
// 通过 | 分隔多个活动名称,并过滤掉空白项
blackActivityMap: parseBlackActivity(settings.blackActivity, parseWhiteActivity(settings.whiteActivityNameList)),
// 同时确保黑名单中的活动名称不包含在白名单whiteActivityNameList
blackActivityNameList: [],
}
}
async function init() {
await buildInitConfigSettings();
log.debug(`[init-config]-[{config}]`, JSON.stringify(config));
let blackActivityMap = config.blackActivityMap
config.blackActivityNameList = blackActivityMap ? Array.from(blackActivityMap.keys()) : [];

View File

@@ -48,6 +48,27 @@ let local = {
uid: null,
}
/**
* 构建初始化配置设置函数
* 该函数用于初始化WebSocket配置和本地配置信息
*/
async function buildInitConfigSettings() {
// 初始化WebSocket配置对象
configWs = {
action: actionMap.get(settings.action), // 从actionMap中获取对应的操作映射
group_id: settings.send_id, // 设置群组ID
user_id: settings.send_id, // 设置用户ID
ws_proxy_url: settings.ws_proxy_url, // 设置WebSocket代理URL
ws_url: settings.ws_url, // 设置WebSocket连接URL
ws_token: settings.ws_token, // 设置WebSocket连接令牌
at_list: settings.at_list ? settings.at_list.split(",") : [] // 处理@用户列表,如果存在则按逗号分割,否则为空数组
}
// 初始化本地配置对象
local = {
token: null, // 初始化token为null
uid: null, // 初始化用户ID为null
}
}
/**
*
*
@@ -56,6 +77,7 @@ let local = {
* 目前函数体为空,可以根据实际需求添加初始化逻辑
*/
async function init() {
await buildInitConfigSettings()
const uid = await ocrUID()
local.token = await getToken()
local.uid = uid