diff --git a/src/MaaWpfGui/Models/ResourceUpdater.cs b/src/MaaWpfGui/Models/ResourceUpdater.cs index acc5456fb9..11b1d38438 100644 --- a/src/MaaWpfGui/Models/ResourceUpdater.cs +++ b/src/MaaWpfGui/Models/ResourceUpdater.cs @@ -170,8 +170,17 @@ namespace MaaWpfGui.Models return (CheckUpdateRetT.UnknownError, null, null); } - var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject() ?? null; - SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 0; + var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject(); + + if (mirrorChyanCdkExpired.HasValue) + { + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired.Value; + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = false; + } + else + { + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = true; + } var errorCode = data["code"]?.ToObject() ?? MirrorChyanErrorCode.Undivided; if (errorCode != MirrorChyanErrorCode.Success) diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index 7c6b698049..7d0dbc2313 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -322,6 +322,7 @@ You can cancel this popup by clicking the 「{key=Settings} - {key=IssueReport} The CDK has reached the maximum download limit for today. Please try again tomorrow. The CDK type does not match the resource to be downloaded. Please check the CDK's applicable scope. CDK expires in {0} days. + Failed to retrieve CDK information. Showing the result from the last successful query. New Version Found \nDownloading from 「{key=GlobalSource}」... \nDownloading from 「{key=MirrorChyan}」... diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index eda5967f6c..06b2728ae0 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -322,6 +322,7 @@ CDK の本日のダウンロード回数が上限に達しました。明日もう一度お試しください。 CDK の種類がダウンロード対象のリソースと一致しません。CDK の適用範囲を確認してください。 CDK の有効期限は残り {0} 日です。 + CDK 情報の取得に失敗しました。前回正常に取得した結果を表示しています。 新しいバージョンが見つかりました 「{key=GlobalSource}」からダウンロード中... 「{key=MirrorChyan}」からダウンロード中... diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index 0ab416d56f..31645ac0aa 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -321,6 +321,7 @@ 해당 CDK의 일일 다운로드 횟수가 제한에 도달했습니다. 내일 다시 시도해 주세요. CDK 유형이 다운로드할 리소스와 일치하지 않습니다. CDK의 적용 범위를 확인해 주세요. CDK 만료까지 {0}일 남았습니다. + CDK 정보를 가져오지 못했습니다. 마지막으로 성공적으로 조회한 결과를 표시합니다. 새로운 버전 확인 「{key=GlobalSource}」 에서 다운로드 중... 「{key=MirrorChyan}」 에서 다운로드 중... diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index 582a42a220..aedcbf404e 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -322,6 +322,7 @@ CDK 今日下载次数已达上限,请明日再试。 CDK 类型与待下载的资源不匹配,请检查 CDK 适用范围。 CDK 还剩 {0} 天到期。 + 获取 CDK 信息失败,已显示上次成功查询的结果。 检测到新版本 正在使用 「{key=GlobalSource}」 下载…… 正在使用 「{key=MirrorChyan}」 下载…… diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index 7f8b7de1cc..8c4f2eb2f7 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -320,6 +320,7 @@ CDK 今日下載次數已達上限,請明日再試。 CDK 類型與待下載的資源不匹配,請檢查 CDK 適用範圍。 CDK 還剩 {0} 天到期。 + 獲取 CDK 資訊失敗,已顯示上次成功查詢的結果。 檢測到新版本 正在使用 「{key=GlobalSource}」 下載… 正在使用 「{key=MirrorChyan}」 下載… diff --git a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs index 77b98606f3..83af9f58b2 100644 --- a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs @@ -1019,8 +1019,17 @@ public class VersionUpdateViewModel : Screen return CheckUpdateRetT.UnknownError; } - var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject() ?? null; - SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 0; + var mirrorChyanCdkExpired = data["data"]?["cdk_expired_time"]?.ToObject(); + + if (mirrorChyanCdkExpired.HasValue) + { + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired.Value; + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = false; + } + else + { + SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = true; + } var errorCode = data["code"]?.ToObject() ?? MirrorChyanErrorCode.Undivided; if (errorCode != MirrorChyanErrorCode.Success) diff --git a/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs index f66b6a798a..186db9571a 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs @@ -340,6 +340,14 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase } } + private bool _mirrorChyanCdkFetchFailed = false; + + public bool MirrorChyanCdkFetchFailed + { + get => _mirrorChyanCdkFetchFailed; + set => SetAndNotify(ref _mirrorChyanCdkFetchFailed, value); + } + public DateTime MirrorChyanCdkExpiredDateTime => DateTimeOffset.FromUnixTimeSeconds(MirrorChyanCdkExpiredTime).DateTime; public DateTime MirrorChyanCdkExpiredLocalTime => MirrorChyanCdkExpiredDateTime.ToLocalTime(); diff --git a/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml index 5fee5f5857..6885eaadd8 100644 --- a/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml @@ -142,6 +142,15 @@ +