Shadow-Lemon
|
5dcbd9b577
|
fix: 修复命令行启动时自动更新阻塞导致 StartGameTask 跳过等待主界面的问题 (#2902)
Co-authored-by: ShadowLemoon <119576779+ShadowLemoon@users.noreply.github.com>
|
2026-03-11 09:56:01 +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 |
|
辉鸭蛋
|
536ed10dbf
|
fix: 修复命令行参数检测和日志翻译的条件逻辑
- 命令行参数检测改为不区分大小写,确保参数匹配的可靠性
- 调试模式下禁用日志翻译,避免开发过程中的翻译干扰
- 仅非中文界面启用翻译日志提供程序,中文界面使用标准日志
|
2026-02-17 22:45:59 +08:00 |
|
mfkvfhpdx
|
468a54e037
|
执行调度器任务增加继续执行功能 (#1658)
* 完全跳过的配置组,不发送通知。给周期配置增加说明。
* 启动参数增加 --no-single ,允许多开,实现特殊需求(重启需要)。增加了一个重启bgi的方法。增加了任务进度的功能,执行调度器任务时,会记录当前任务执行位置,当关闭后(比如F11),下次可以通过继续菜单,选择记录,从上次关闭任务处执行。
* 调整继续执行,最后一次成功的下一个任务执行
* 设置,其他设置,增加了调度器任务,遇到异常时,连续累计一定次数时,重启BGI,和可配置的重启游戏。
* 连续任务支持循环,右键支持从连续的某一个任务开始执行。修改了一些配置变量的写法,使之不会保存到json文件中。
|
2025-06-02 00:03:26 +08:00 |
|
Zhicheng Zhang
|
8eca558134
|
修复一个命令行启动的bug。 (#1600)
* fix a bug in cli run
* update README.md with full build method
|
2025-05-17 11:22:31 +08:00 |
|
Zhicheng Zhang
|
2ab54e50c0
|
支持在命令行启动一条龙参数时选择配置,配置找不到就用界面指定的。 (#1586)
* 优化命令行一条龙,支持选择配置。
BetterGI.exe startOneDragon <一条龙配置名称>
BetterGI.exe --startOneDragon <一条龙配置名称>
* 优化其它命令行启动逻辑。
|
2025-05-15 00:33:09 +08:00 |
|
辉鸭蛋
|
46ebdfc452
|
wpfui 4.0.0 (#1255)
* new INavigationAware, remove PageService
* fix run
* fix title bar
* override OnNavigatedTo
* try fix WindowStartupLocation
|
2025-03-13 00:33:31 +08:00 |
|
qhy040404
|
c490d29aa1
|
code cleanup
|
2024-08-14 18:01:02 +08:00 |
|
huiyadanli
|
548e136d11
|
Menu navigation & DI
|
2023-10-05 17:56:57 +08:00 |
|