Shadow-Lemon
|
1e9b72e547
|
fix: 修复同时存在多个脚本仓库文件夹时迁移优先级出错 (#2906)
Co-authored-by: ShadowLemoon <119576779+ShadowLemoon@users.noreply.github.com>
|
2026-03-12 00:08:26 +08:00 |
|
Shadow-Lemon
|
5dcbd9b577
|
fix: 修复命令行启动时自动更新阻塞导致 StartGameTask 跳过等待主界面的问题 (#2902)
Co-authored-by: ShadowLemoon <119576779+ShadowLemoon@users.noreply.github.com>
|
2026-03-11 09:56:01 +08:00 |
|
DarkFlameMaster
|
5a5b77266e
|
feat(JS): 支持调用 C#中含out/ref参数的方法 (#2884)
* feat(JS): 支持调用 C#中含out/ref参数的方法
* 新增NewVarOfArr方法用于支持交错数组
* 多删了一行
|
2026-03-09 23:42:44 +08:00 |
|
云端客
|
65b5032e6e
|
[开放JS 调用 API]自动幽境危战 (#2882)
|
2026-03-08 21:13:18 +08:00 |
|
DarkFlameMaster
|
8b7d2353e5
|
feat(js):地图追踪增加读取目录下的内容等方法 (#2875)
* feat(js):地图追踪增加读取目录下的内容等方法
* refactor(AutoPathingScript): 重构文件操作方法到LimitedFile类
* fix
* docs(AutoPathingScript): 修正方法参数注释中的默认值描述
* 避免重复初始化实例,给恢复游戏窗口焦点的日志也加上当前窗口名
|
2026-03-05 01:13:52 +08:00 |
|
云端客
|
cac0dfc754
|
开放自动地脉花 JS调用 (#2789)
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
|
2026-02-24 11:12:16 +08:00 |
|
ShadowLemoon
|
12423edd6e
|
fix: 修复迁移订阅触发时机 (#2811)
|
2026-02-21 11:46:24 +08:00 |
|
ShadowLemoon
|
f7976b0bbd
|
feat: 根据文件夹名字和内容重合度区分仓库;启动时自动更新仓库和订阅 (#2767)
* feat: 实现启动时自动更新已订阅脚本及多仓库分离存储
- ScriptConfig: 新增 AutoUpdateSubscribedScripts 配置项
- ScriptRepoUpdater: 动态 CenterRepoPath, 按仓库URL分离存储
- 内容重合度检测(Jaccard系数)判断仓库异同
- URL→文件夹名持久化映射(repo_folder_mapping.json)
- repo_updated.json 存放于各自仓库文件夹内
- AutoUpdateSubscribedScripts 启动时自动更新订阅脚本
- 静默同步仓库、渠道URL解析、检出更新脚本
- RepoWebBridge: 使用动态路径, 辅助方法改为 internal
- MainWindowViewModel: 启动时调用自动更新
* feat: 基于内容重合度的导入zip仓库
* perf: 合并默认仓库url映射
* perf: 清理兼容字段
* perf: 添加线程锁以避免并发调用
* fix: 缓存FolderMapping、修复重合度异常返回值、目录扫描异常隔离、移除未使用变量
* perf: 优化更新流程
* perf: 内存缓存添加锁
* fix: 修复更新状态逻辑,确保克隆失败时不标记为已更新
* perf: 文件夹映射先写磁盘再写缓存
* refactor: 简化生成唯一文件夹名称的方法,移除不必要的参数
* fix: ResetRepo加写锁并清理URL映射条目
* perf: 优化重合度算法
* docs: 更新注释
* fix: 仅重置实际更新成功的脚本的 hasUpdate 标记
* feat: 手动一键更新按钮
* feat: 订阅路径迁移至独立文件存储并简化更新逻辑
- 订阅数据从 config.json 迁移到 User/subscriptions/{repo}.json 独立文件
- 添加 ReaderWriterLockSlim 保护订阅文件并发读写
- 使用 System.Text.Json + ConfigService.JsonOptions 序列化
- 新增 RepoWebBridge.GetSubscribedScriptPaths() 桥接方法
- 启动时自动从旧 config.json 迁移订阅数据到独立文件
- 合并手动/自动更新为 UpdateAllSubscribedScriptsCore 共用核心
- 移除 hasUpdate 检查,直接全量更新所有订阅脚本
- 移除冗余 logPrefix 参数
* refactor: 简化启动时自动更新调用
- 移除 Task.Run + try-catch 包装,异常处理已内置于方法中
- 直接使用 fire-and-forget 异步调用
* fix: 订阅目录命名改为 PascalCase (Subscriptions)
* refactor: 移除死代码和冗余中间层方法
* fix: ReadSubscriptionFile 异常时记录日志避免订阅数据静默丢失
* fix: 进度条改为Indeterminate模式、异常日志补全、订阅去重、迁移批量写入、锁注释
* refactor: 提取 ReadFolderMappingFromDisk 消除映射方法嵌套 try
* fix: 补全静态方法异常日志、WriteSubscriptionFile异常保护、ManualUpdate注释
* fix: ManualUpdateSubscribedScripts 加 try-catch 兜底并提示用户重置仓库
* fix: Dialog打开时检测后台自动更新状态,自动禁用按钮并显示进度提示
- ScriptRepoUpdater 新增 IsAutoUpdating 标志和 AutoUpdateStateChanged 事件
- ScriptRepoWindow 订阅事件,自动更新期间显示进度条、禁用所有操作按钮并 Toast 提示
- 更新仓库/重置仓库按钮也加上 IsEnabled 绑定 IsUpdating
* fix: 将自动更新调用包裹在 Task.Run 中避免 UI 线程阻塞
AutoUpdateSubscribedScripts 的 await 后续会被 WPF SynchronizationContext
调度回 UI 线程,导致大量 Git checkout 和文件 IO 操作阻塞界面。
用 Task.Run 确保整个流程在线程池执行。
* fix: 进度条分离 IsProgressIndeterminate 属性,按操作类型正确切换确定/不确定模式
* refactor: 消除 pathing 展开重复逻辑、用布尔字段替换字符串比较追踪状态来源、补全锁注释、统一日志方式
* fix: ExpandTopLevelPaths 泛化展开所有 PathMapper 顶层 key 防止误删用户目录,迁移移入锁内
* fix: 命令行启动配置组/一条龙前先等待自动更新订阅脚本完成
* feat: 添加命令行启动时是否先自动更新选项
* fix: 修复按钮位置
|
2026-02-20 15:09:17 +08:00 |
|
辉鸭蛋
|
a0584f6fdc
|
feat(script): 向脚本引擎添加新的Bv视觉类
添加BvPage、BvLocator和BvImage类型到脚本引擎的宿主对象中,扩展脚本的视觉识别能力。
|
2026-02-18 13:03:02 +08:00 |
|
辉鸭蛋
|
9f67726781
|
I18n v2 (#2709)
* feat(i18n): 添加界面与日志的国际化支持
- 新增 ITranslationService 接口及 JsonTranslationService 实现,提供基于 JSON 的翻译服务
- 添加 TrConverter 转换器,支持通过绑定动态翻译界面文本
- 引入 AutoTranslateInterceptor 行为,自动扫描并翻译界面中的静态文本
- 集成 TranslatingSerilogLoggerProvider,实现日志输出的实时翻译
- 在 App.xaml 中注册全局样式,为 Window、UserControl 和 Page 启用自动翻译
* refactor(AutoTranslateInterceptor): 优化自动翻译拦截器的加载与应用机制
- 移除 HomePage 中冗余的 EnableAutoTranslate 属性设置,改为继承属性
- 通过类构造函数注册全局 Loaded 事件处理器,替代在每个元素上单独添加
- 引入请求队列机制,批量处理待应用翻译的元素,避免重复调度
- 扩展属性类型检查,支持 object 类型以处理更多动态内容场景
* fix: 移除全局自动翻译拦截器以避免冲突
移除在 App.xaml 中为 Window、UserControl 和 Page 全局设置的 AutoTranslateInterceptor,
改为仅在 PickerWindow 中显式启用。这解决了全局样式可能导致的意外行为或冲突。
* feat(ui): 为多个窗口启用自动翻译拦截器
为 MapLabelSearchWindow、ArtifactOcrDialog、PromptDialog 等 14 个窗口添加了 AutoTranslateInterceptor.EnableAutoTranslate 属性,以启用自动翻译拦截功能。
* feat(i18n): 添加国际化目录支持并优化异常处理
* feat(ui): 添加软件UI语言设置并改进翻译服务
- 在通用设置页面新增UI语言选择控件,支持动态切换界面语言
- 修改游戏语言标签为“原神游戏语言”以明确区分
- 改进JsonTranslationService,支持UI语言切换时的实时翻译更新
- 优化AutoTranslateInterceptor,缓存原始文本值并在语言切换时恢复
- 添加属性变更监听机制,确保UI元素在语言切换后正确刷新
* feat(自动翻译): 添加排除自动翻译的依赖属性
在 AutoTranslateInterceptor 中新增 ExcludeAutoTranslate 附加属性,允许对特定依赖对象禁用自动翻译功能。当遍历元素进行翻译时,会检查此属性并跳过已标记排除的元素。
* feat(translation): 为缺失文本翻译添加详细上下文信息
扩展翻译服务以收集缺失文本的详细上下文,包括视图路径、元素类型、属性名等。
重构 `ITranslationService` 接口,引入 `TranslationSourceInfo` 类封装上下文信息。
修改 `AutoTranslateInterceptor` 自动收集 UI 元素信息,`JsonTranslationService` 合并多来源上下文。
* Revert "feat(自动翻译): 添加排除自动翻译的依赖属性"
This reverts commit a1c2334951.
* fix: 跳过 GridViewRowPresenter 中的文本翻译
添加 IsInGridViewRowPresenter 检查,避免在 GridViewRowPresenter 控件内进行自动翻译,防止潜在的界面显示问题。
* fix: 修复自动翻译拦截器在组合框上下文中的误触发
在自动翻译拦截器中添加了 IsInComboBoxContext 方法,用于检测依赖对象是否处于 ComboBox 或其相关弹出菜单的上下文中。当检测到对象位于组合框上下文时,跳过自动翻译逻辑,避免对下拉选项等界面元素进行不必要的翻译操作,从而解决潜在的界面干扰问题。
* feat(translation): 添加缺失翻译上报至 Supabase 的功能
- 新增 IMissingTranslationReporter 接口及 SupabaseMissingTranslationReporter 实现
- 在 JsonTranslationService 中集成缺失翻译上报逻辑
- 添加缺失翻译收集的配置设置(MissingTranslationCollectionSettings)
- 优化缺失翻译文件的序列化格式,将 Source 字段改为紧凑的数字表示
- 移除 ScriptRepoUpdater 中未使用的 using 语句
- 在 App.xaml.cs 中注册 SupabaseMissingTranslationReporter 服务
* fix: 修复自动翻译功能中原始值恢复和重复报告问题
- 移除未使用的法语翻译支持以简化语言选项
- 修复 Supabase 报告序列化时移除冗余字段
- 添加已缺失翻译键的缓存以避免重复报告
- 重构自动翻译拦截器,将原始值存储移至依赖属性
- 修复原始值恢复逻辑,确保正确遍历所有子元素
* feat(ui): 添加更新UI语言文件功能
- 在 ITranslationService 接口中添加 Reload 方法
- 在 JsonTranslationService 中实现 Reload 方法,支持重新加载语言文件并发送变更通知
- 在通用设置页面添加“更新”按钮,点击后从远程仓库下载最新语言文件
- 实现 OnUpdateUiLanguageAsync 命令,支持从 GitHub 和镜像源下载语言文件
- 下载后自动替换本地文件并重新加载翻译服务
|
2026-02-15 19:03:33 +08:00 |
|
躁动的氨气
|
2f3ca34704
|
fix: 键鼠回调改为异步事件分发 (#2741)
* fix: 键鼠回调改为异步事件分发
* 添加队列限制与并行锁
* Update BetterGenshinImpact/Core/Script/Dependence/KeyMouseHook.cs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* 只允许外部dispose
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
2026-02-07 16:58:07 +08:00 |
|
躁动的氨气
|
6b2f2543c4
|
feat: 支持仓库使用公共资源 (#2716)
|
2026-02-05 01:48:06 +08:00 |
|
bling-yshs
|
2ced2862b3
|
fix: 修复 JS 脚本 multi-checkbox 配置项删除后仍能读取到旧值的问题 (#2725)
|
2026-02-05 01:36:08 +08:00 |
|
躁动的氨气
|
b612e70592
|
feat: 添加bgi版本获取 (#2692)
|
2026-01-26 02:40:24 +08:00 |
|
躁动的氨气
|
de79d8a61c
|
feat: 添加进出千星以刷新CD (#2677)
|
2026-01-24 00:45:05 +08:00 |
|
Jamis
|
cbef23b7ba
|
Use nullable types for genshin-map coordinates (#2650)
|
2026-01-18 21:56:50 +08:00 |
|
辉鸭蛋
|
9372c007f8
|
一键更新失败的时候不抛出错误
|
2026-01-16 22:37:36 +08:00 |
|
ShadowLemoon
|
cd3ace0b62
|
perf: 减少一次拉取,提升100% (#2619)
|
2026-01-12 21:44:08 +08:00 |
|
辉鸭蛋
|
16a8142faa
|
feat: add progress reporting for repository fetch and clone operations
|
2026-01-11 01:15:45 +08:00 |
|
辉鸭蛋
|
6db5926dce
|
fix: reset repository reference after update failure
|
2026-01-10 23:55:44 +08:00 |
|
ShadowLemoon
|
24c134fb11
|
fix: 始终重新克隆脚本仓库 (#2614)
|
2026-01-10 23:45:13 +08:00 |
|
躁动的小氨气
|
26d8499419
|
新手引导标志迁移至本体 (#2612)
|
2026-01-10 21:53:33 +08:00 |
|
辉鸭蛋
|
7229bf1c05
|
fix get
|
2026-01-05 00:29:59 +08:00 |
|
ShadowLemoon
|
d830dea328
|
perf: 极大加快脚本仓库的拉取速度 (#2359)
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
|
2026-01-04 22:19:32 +08:00 |
|
DarkFlameMaster
|
cd5b22548c
|
feat:JS添加自动剧情的实时任务时,支持传入参数 (#2591)
|
2026-01-03 16:24:53 +08:00 |
|
Bread Grocery
|
d46d594f31
|
fix(js): 修复使用ESM时,仅使用同步代码报错 (#2592)
|
2025-12-30 17:44:58 +08:00 |
|
DarkFlameMaster
|
bda91816d4
|
fix: KeyMouseHook相关 (#2588)
|
2025-12-30 17:43:33 +08:00 |
|
DarkFlameMaster
|
88bcf9b151
|
暴露键鼠回调给js层 (#2571)
Co-authored-by: Eavina <147073068+Eavina@users.noreply.github.com>
|
2025-12-23 00:25:49 +08:00 |
|
躁动的氨气
|
a40643e828
|
添加虚拟域名情况下README内图片获取支持 (#2552)
|
2025-12-15 01:32:10 +08:00 |
|
躁动的氨气
|
918aaf3b99
|
webview2改用虚拟域名 (#2543)
|
2025-12-14 00:27:21 +08:00 |
|
Bread Grocery
|
08f9312fb3
|
fix: 清除模块加载缓存导致library中的文件变动后无法生效 (#2525)
|
2025-12-07 23:38:35 +08:00 |
|
DarkFlameMaster
|
f19a16e1d3
|
增加模块导入的支持 (#2494)
|
2025-12-01 00:40:04 +08:00 |
|
躁动的氨气
|
be2918ef56
|
记录仓库页面位置和大小,提供默认值 (#2458)
|
2025-11-14 21:49:43 +08:00 |
|
ShadowLemoon
|
300656761d
|
refactor: 给没有跟随主题的弹窗加上跟随主题的功能 (#2461)
|
2025-11-14 16:29:49 +08:00 |
|
Bread Grocery
|
ee12703d1a
|
feat(js): 脚本读取图片时支持调整到指定尺寸 (#2446)
|
2025-11-07 19:29:10 +08:00 |
|
躁动的氨气
|
227f429c0b
|
暴露设置时间方法(跳过动画实测未生效) (#2426)
|
2025-11-01 14:12:07 +08:00 |
|
躁动的氨气
|
4e479496f8
|
JS文件添加路径校验,补回仓库地址边框 (#2412)
|
2025-10-29 14:17:21 +08:00 |
|
Bread Grocery
|
d9f6a01fab
|
feat(js): 全局方法暴露 getGameMetrics 方法 (#2403)
|
2025-10-28 10:24:59 +08:00 |
|
ShadowLemoon
|
a58e93976c
|
feat: 支持私有脚本仓库鉴权 (#2361)
|
2025-10-19 21:14:16 +08:00 |
|
NyaMisty
|
4d6d337631
|
fix: 修复http缺失的默认参数 (#2340)
|
2025-10-14 02:04:14 +08:00 |
|
NyaMisty
|
81ab66acfa
|
feat: 改进http,返回header和status_code,并实现url级别细粒度控制和ui提示 (#2332)
|
2025-10-13 20:26:56 +08:00 |
|
NyaMisty
|
910b005461
|
feat: 支持在脚本中进行http请求 (#2331)
|
2025-10-13 00:42:20 +08:00 |
|
辉鸭蛋
|
3100862c04
|
传入地图匹配方式 (#2273)
|
2025-10-08 16:14:39 +08:00 |
|
DarkFlameMaster
|
92c6556316
|
提供自定义参数的 自动秘境 与 自动战斗 方法 (#2299)
|
2025-10-05 20:02:48 +08:00 |
|
FishmanTheMurloc
|
8a7440dbbe
|
ScriptObjectConverter.GetValue()新增支持一层集合泛型参数解析;CountInventoryItem新增支持复数物品的计数,并在Dispatcher中向JavaScript暴露此种使用方式 (#2267)
|
2025-09-26 23:15:18 +08:00 |
|
bhbghghbgb
|
94e50307a5
|
重构服务器重置时间处理 (#2160)
|
2025-09-23 00:59:07 +08:00 |
|
bling-yshs
|
cd69a255dc
|
feat: 通知->全局通知设置->添加新选项“手动停止时不通知”,允许用户选择手动停止时是否发送通知 (#2195)
|
2025-09-16 10:25:40 +08:00 |
|
辉鸭蛋
|
bfe55061f4
|
git 更新提升速度
|
2025-09-12 02:04:25 +08:00 |
|
辉鸭蛋
|
5e8e078d8d
|
修复删除仓库时,仓库被占用的问题。修复历次更新 Fetch 过慢的问题
|
2025-09-10 01:25:22 +08:00 |
|
躁动的氨气
|
9a6a11295e
|
优化节点更新标记逻辑 (#2162)
|
2025-09-09 23:43:08 +08:00 |
|