fix: 第一次访问 mirror酱 失败时错误提示 cdk 已过期

This commit is contained in:
uye
2025-10-09 23:53:25 +08:00
parent 04206e7e5e
commit e52f573a7f
3 changed files with 40 additions and 2 deletions

View File

@@ -149,6 +149,7 @@ namespace MaaWpfGui.Models
{
_logger.Error("mirrorc failed");
ToastNotification.ShowDirect(LocalizationHelper.GetString("GameResourceFailed"));
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = true;
return (CheckUpdateRetT.NetworkError, null, null);
}
@@ -167,6 +168,7 @@ namespace MaaWpfGui.Models
if (data is null)
{
ToastNotification.ShowDirect(LocalizationHelper.GetString("GameResourceFailed"));
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = true;
return (CheckUpdateRetT.UnknownError, null, null);
}
@@ -189,6 +191,21 @@ namespace MaaWpfGui.Models
{
case MirrorChyanErrorCode.KeyExpired:
ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkExpired"));
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = false;
// 有人会第一次就填过期的 cdk 吗
if (SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime == 0)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = 1;
}
// 如果上次查出来的时间比现在的还新,说明换了 cdk重置过期时间
if (!SettingsViewModel.VersionUpdateSettings.IsMirrorChyanCdkExpired)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 1;
}
break;
case MirrorChyanErrorCode.KeyInvalid:
ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkInvalid"));

View File

@@ -999,6 +999,7 @@ public class VersionUpdateViewModel : Screen
if (response is null)
{
_logger.Error("mirrorc failed");
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = true;
return CheckUpdateRetT.NetworkError;
}
@@ -1016,6 +1017,7 @@ public class VersionUpdateViewModel : Screen
if (data is null)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = true;
return CheckUpdateRetT.UnknownError;
}
@@ -1038,6 +1040,21 @@ public class VersionUpdateViewModel : Screen
{
case MirrorChyanErrorCode.KeyExpired:
ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkExpired"));
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkFetchFailed = false;
// 有人会第一次就填过期的 cdk 吗
if (SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime == 0)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = 1;
}
// 如果上次查出来的时间比现在的还新,说明换了 cdk重置过期时间
if (!SettingsViewModel.VersionUpdateSettings.IsMirrorChyanCdkExpired)
{
SettingsViewModel.VersionUpdateSettings.MirrorChyanCdkExpiredTime = mirrorChyanCdkExpired ?? 1;
}
break;
case MirrorChyanErrorCode.KeyInvalid:
ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkInvalid"));

View File

@@ -325,6 +325,7 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase
// 时间戳
private long _mirrorChyanCdkExpiredTime = ConfigurationHelper.GetGlobalValue(ConfigurationKeys.MirrorChyanCdkExpiredTime, 0L);
// 0 表示未设置1 表示未设置且已过期
public long MirrorChyanCdkExpiredTime
{
get => _mirrorChyanCdkExpiredTime;
@@ -366,10 +367,12 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase
/// Gets 显示用的剩余时间提示
/// </summary>
public string MirrorChyanCdkRemainingText =>
IsMirrorChyanCdkExpired
MirrorChyanCdkExpiredTime != 0
? IsMirrorChyanCdkExpired
? LocalizationHelper.GetString("MirrorChyanCdkExpired")
: string.Format(LocalizationHelper.GetString("MirrorChyanCdkRemainingDays"),
MirrorChyanCdkRemaining.TotalDays.ToString("F1"));
MirrorChyanCdkRemaining.TotalDays.ToString("F1"))
: string.Empty;
/// <summary>
/// Gets uI 显示用颜色
@@ -399,6 +402,7 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase
OnPropertyChanged(nameof(IsMirrorChyanCdkExpired));
OnPropertyChanged(nameof(MirrorChyanCdkRemainingText));
OnPropertyChanged(nameof(MirrorChyanCdkRemainingBrush));
OnPropertyChanged(nameof(MirrorChyanCdkExpiredLocalTime));
}
private bool _startupUpdateCheck = Convert.ToBoolean(ConfigurationHelper.GetGlobalValue(ConfigurationKeys.StartupUpdateCheck, bool.TrueString));