diff --git a/CHANGELOG.md b/CHANGELOG.md index 85a1265..a63b3c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # 更新日志 +## V1.2.1 + +- 修复无法获取1.2以上版本《崩坏:星穹铁道》缓存信息的错误 + ## V1.2.0 - 添加“设置->用户”页;允许切换用户以及移除用户 diff --git a/DodocoTales.StarRail/DodocoTales.StarRail.csproj b/DodocoTales.StarRail/DodocoTales.StarRail.csproj index c23b803..a379838 100644 --- a/DodocoTales.StarRail/DodocoTales.StarRail.csproj +++ b/DodocoTales.StarRail/DodocoTales.StarRail.csproj @@ -64,6 +64,9 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Extensions.FileSystemGlobbing.7.0.0\lib\net462\Microsoft.Extensions.FileSystemGlobbing.dll + ..\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll diff --git a/DodocoTales.StarRail/Gui/ViewModels/Dialogs/DDCVImportDialogVM.cs b/DodocoTales.StarRail/Gui/ViewModels/Dialogs/DDCVImportDialogVM.cs index bd0341e..f45f2cc 100644 --- a/DodocoTales.StarRail/Gui/ViewModels/Dialogs/DDCVImportDialogVM.cs +++ b/DodocoTales.StarRail/Gui/ViewModels/Dialogs/DDCVImportDialogVM.cs @@ -250,16 +250,17 @@ public void Import() private Dictionary KnownApplication = new Dictionary { { "DodocoTales.StarRail", "星穹铁道跃迁观测工具" }, - { "star-rail-warp-export", "崩坏:星穹铁道跃迁记录导出工具 (biuuu)" }, - { "star-rail-gacha" , "崩坏:星穹铁道抽卡导出工具 (DancingSnow0517)" }, - { "StarRailTools", "崩坏:星穹铁道跃迁记录导出工具 (cntvc)" }, + { "star-rail-warp-export", "崩坏:星穹铁道跃迁记录导出工具 (biuuu)" }, + { "star-rail-gacha" , "崩坏:星穹铁道抽卡导出工具 (DancingSnow0517)" }, + { "StarRailTools", "崩坏:星穹铁道跃迁记录导出工具 (cntvc)" }, { "StarRailToolkit", "《崩坏:星穹铁道》工具箱 (LittleNyima)" }, { "asta", "Asta (AuroraZiling)" }, { "SRCat", "SRCat (BoxCatTeam)" }, - { "star-rail-gacha-export", "「崩坏 · 星穹铁道」 跃迁记录导出脚本 (vikiboss)" }, + { "star-rail-gacha-export", "「崩坏·星穹铁道」 跃迁记录导出脚本 (vikiboss)" }, { "com.lgou2w.hoyo.gacha", "HoYo.Gacha (lgou2w)" }, { "Starward", "Starward (Scighost)" }, { "PaiGram", "PaiGram (PaiGramTeam)" }, + { "SRTools", "星轨工具箱 (JamXi233)" }, }; } } diff --git a/DodocoTales.StarRail/Library/UserDataLibrary/DDCLUserDataLibrary.cs b/DodocoTales.StarRail/Library/UserDataLibrary/DDCLUserDataLibrary.cs index e661464..f321681 100644 --- a/DodocoTales.StarRail/Library/UserDataLibrary/DDCLUserDataLibrary.cs +++ b/DodocoTales.StarRail/Library/UserDataLibrary/DDCLUserDataLibrary.cs @@ -18,7 +18,7 @@ public class DDCLUserDataLibrary public readonly string UserDataFileSearchPattern = "userlog_*.json"; public readonly string UserDataFileRegexPattern = @"userlog_(\d+)\.json"; public readonly string UserDataFileOpenPattern = "userdata/userlog_{0}.json"; - public readonly string UserBackupFileOpenPattern = "userdata/backup_{0}_{1}.json"; + public readonly string UserBackupFileOpenPattern = "userdata/backup_{0}_{1:yyyyMMddhhmmss}.json"; public Dictionary U { get; set; } public DDCLUserDataLibrary() diff --git a/DodocoTales.StarRail/Loader/DDCGGameClientLoader.cs b/DodocoTales.StarRail/Loader/DDCGGameClientLoader.cs index 1867b16..1ff553a 100644 --- a/DodocoTales.StarRail/Loader/DDCGGameClientLoader.cs +++ b/DodocoTales.StarRail/Loader/DDCGGameClientLoader.cs @@ -1,6 +1,7 @@ using DodocoTales.SR.Library; using DodocoTales.SR.Library.Enums; using DodocoTales.SR.Library.GameClient.Models; +using Microsoft.Extensions.FileSystemGlobbing; using System; using System.Collections.Generic; using System.IO; @@ -101,15 +102,24 @@ public DDCLGameClientItem LoadGameClientItemFromExecutablePath(string execpath) } - readonly string WebCachePath = @"/webCaches/Cache/Cache_Data/data_2"; + readonly string WebCachePath = @"./webCaches/**/Cache_Data/data_2"; // 用CN API强行获取OS或反之,会获得缺失name、item_type与rank_type的记录,造成解析错误 readonly string authkey_pattern_cn = @"1/0/\S+\?(\S+&game_biz=hkrpg_cn)"; readonly string authkey_pattern_os = @"1/0/\S+\?(\S+&game_biz=hkrpg_global)"; + public string GetNewestWebCache(string dirpath) + { + Matcher matcher = new Matcher(); + matcher.AddInclude(WebCachePath); + return matcher.GetResultsInFullPath(dirpath).Select(x => new { Path = x, LastModifiedTime = new FileInfo(x).LastWriteTimeUtc }) + .OrderByDescending(x => x.LastModifiedTime).FirstOrDefault()?.Path ?? null; + } + public string GetAuthkeyFromWebCache(DDCLGameClientItem client) { string authkey = null; - string path = client.Path + WebCachePath; + string path = GetNewestWebCache(client.Path); + if (path == null) return null; string authkey_pattern; switch (client.ClientType) { diff --git a/DodocoTales.StarRail/MainWindow.xaml b/DodocoTales.StarRail/MainWindow.xaml index b47b058..f5b300b 100644 --- a/DodocoTales.StarRail/MainWindow.xaml +++ b/DodocoTales.StarRail/MainWindow.xaml @@ -7,7 +7,7 @@ xmlns:local="clr-namespace:DodocoTales" xmlns:vm="clr-namespace:DodocoTales.SR.Gui.ViewModels" mc:Ignorable="d" - Title="星穹铁道跃迁观测工具 - 1.2.0" Height="760" Width="1160" + Title="星穹铁道跃迁观测工具 - 1.2.1" Height="760" Width="1160" Unloaded="Window_Unloaded"> diff --git a/DodocoTales.StarRail/Properties/AssemblyInfo.cs b/DodocoTales.StarRail/Properties/AssemblyInfo.cs index 909b77c..0a95674 100644 --- a/DodocoTales.StarRail/Properties/AssemblyInfo.cs +++ b/DodocoTales.StarRail/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] +[assembly: AssemblyVersion("1.2.1.0")] +[assembly: AssemblyFileVersion("1.2.1.0")] diff --git a/DodocoTales.StarRail/packages.config b/DodocoTales.StarRail/packages.config index b34dba1..0e84bb9 100644 --- a/DodocoTales.StarRail/packages.config +++ b/DodocoTales.StarRail/packages.config @@ -9,6 +9,7 @@ + diff --git a/README.md b/README.md index 8f24190..bf105a3 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,22 @@ # 星穹铁道跃迁观测工具 -基于开发中止的原神祈愿记录导出工具[“嘟嘟可故事集”(重制版本)](https://github.com/TremblingMoeNew/DodocoTales) 开发的崩坏:星穹铁道跃迁(抽卡)记录导出工具。 +星穹铁道跃迁观测工具(Star Rail Warp Observe), 简称Starwo,是一款针对游戏《崩坏:星穹铁道》开发的抽卡历史记录导出与管理工具。 -正式名称“星穹铁道跃迁观测工具” (Star Rail Warp Observe),代号*DodocoTales - Star Rail*。 +*本工具为基于为游戏《原神》所设计、但开发暂停的祈愿记录导出工具[“嘟嘟可故事集”重制版本](https://github.com/TremblingMoeNew/DodocoTales)所改造而来的姊妹版本。Codename: DodocoTales.StarRail.* +本工具的主要特色为,采用游戏版本-卡池-轮次的三级结构对玩家的跃迁历史记录进行整理与展示,帮助玩家更好的梳理抽取概率提升的五星单位的过程中的抽取情况。同时,仪表盘中也对您的四星与五星单位抽取概率相对于期望值的高低进行了展示。 +本工具仅支持简体中文语言的界面及跃迁历史记录项。 -由于其基于的原始代码并未完成“设置 - 用户管理”页面以及导入导出界面,本工具在早期版本将不具备用户切换以及导入导出功能。 - -当前仅简体中文语言。 - - - -## 迁移状态 - -- [ ] ~~单位数据库(移除)~~ -- [x] 卡池数据库 -- [x] 从缓存获取Authkey -- [x] 代理模式获取Authkey -- [x] 通过历史记录页API获取用户跃迁记录并保存 -- [x] 首页UI -- [x] 按版本统计页 -- [x] 卡池抽取情况详情页 -- [x] (迁移完毕) --- -- [x] 自动更新 -- [x] 跃迁记录导入 -- [x] 跃迁记录导出 -- [x] 国际服支持(未测试) ---- +本工具基于.NET Framework 4.7.2构建,依赖以下项目: + +- [JamesNK/Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) +- [Mochengvia/PanuonUI.Silver](https://github.com/Mochengvia/PanuonUI.Silver) +- [beto-rodriguez/LiveCharts2](https://github.com/beto-rodriguez/LiveCharts2) +- [CommunityToolkit/dotnet](https://github.com/CommunityToolkit/dotnet) +- [CommunityToolkit/WindowsCommunityToolkit](https://github.com/CommunityToolkit/WindowsCommunityToolkit) +- [justcoding121/titanium-web-proxy](https://github.com/justcoding121/Titanium-Web-Proxy) -- [ ] 记录账号管理(待开发) \ No newline at end of file +本工具为[UIGF组织](https://uigf.org/zh)的成员。 \ No newline at end of file