修正未登录时不能正常获取wbi口令的问题

pull/896/head
leiurayer 1 year ago
parent 35ca6a3442
commit 9da37a7f28

@ -27,8 +27,7 @@ namespace DownKyi.Core.BiliApi.Users
UserInfoForNavigationOrigin userInfo = JsonConvert.DeserializeObject<UserInfoForNavigationOrigin>(response); UserInfoForNavigationOrigin userInfo = JsonConvert.DeserializeObject<UserInfoForNavigationOrigin>(response);
if (userInfo == null || userInfo.Data == null) { return null; } if (userInfo == null || userInfo.Data == null) { return null; }
if (userInfo.Data.IsLogin) { return userInfo.Data; } return userInfo.Data;
else { return null; }
} }
catch (Exception e) catch (Exception e)
{ {

@ -229,45 +229,59 @@ namespace DownKyi.ViewModels
InputText = string.Empty; InputText = string.Empty;
} }
private UserInfoForNavigation GetUserInfo() private async Task<UserInfoForNavigation> GetUserInfo()
{ {
// 获取用户信息 UserInfoForNavigation userInfo = null;
var userInfo = UserInfo.GetUserInfoForNavigation(); await Task.Run(new Action(() =>
if (userInfo != null)
{ {
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings // 获取用户信息
userInfo = UserInfo.GetUserInfoForNavigation();
if (userInfo != null)
{ {
Mid = userInfo.Mid, SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
Name = userInfo.Name, {
IsLogin = userInfo.IsLogin, Mid = userInfo.Mid,
IsVip = userInfo.VipStatus == 1, Name = userInfo.Name,
ImgKey = userInfo.Wbi.ImgUrl.Split('/').ToList().Last().Split('.')[0], IsLogin = userInfo.IsLogin,
SubKey = userInfo.Wbi.SubUrl.Split('/').ToList().Last().Split('.')[0], IsVip = userInfo.VipStatus == 1,
}); ImgKey = userInfo.Wbi.ImgUrl.Split('/').ToList().Last().Split('.')[0],
} SubKey = userInfo.Wbi.SubUrl.Split('/').ToList().Last().Split('.')[0],
else });
{ }
SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings else
{ {
Mid = -1, SettingsManager.GetInstance().SetUserInfo(new UserInfoSettings
Name = "", {
IsLogin = false, Mid = -1,
IsVip = false, Name = "",
}); IsLogin = false,
} IsVip = false,
});
}
}));
return userInfo; return userInfo;
} }
/// <summary> /// <summary>
/// 更新用户登录信息 /// 更新用户登录信息
/// </summary> /// </summary>
private async void UpdateUserInfo() private async void UpdateUserInfo(bool isBackgroud = false)
{ {
try try
{ {
if (isBackgroud)
{
// 获取用户信息
await GetUserInfo();
return;
}
LoginPanelVisibility = Visibility.Hidden; LoginPanelVisibility = Visibility.Hidden;
// 获取用户信息
var userInfo = await GetUserInfo();
// 检查本地是否存在login文件没有则说明未登录 // 检查本地是否存在login文件没有则说明未登录
if (!File.Exists(StorageManager.GetLogin())) if (!File.Exists(StorageManager.GetLogin()))
{ {
@ -277,34 +291,26 @@ namespace DownKyi.ViewModels
return; return;
} }
await Task.Run(new Action(() => LoginPanelVisibility = Visibility.Visible;
{
// 获取用户信息
var userInfo = GetUserInfo();
PropertyChangeAsync(new Action(() => if (userInfo != null)
{
if (userInfo.Face != null)
{
Header = new StorageHeader().GetHeaderThumbnail(userInfo.Mid, userInfo.Name, userInfo.Face, 36, 36);
}
else
{ {
LoginPanelVisibility = Visibility.Visible; Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
}
if (userInfo != null) UserName = userInfo.Name;
{ }
if (userInfo.Face != null) else
{ {
Header = new StorageHeader().GetHeaderThumbnail(userInfo.Mid, userInfo.Name, userInfo.Face, 36, 36); Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
} UserName = null;
else }
{
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
}
UserName = userInfo.Name;
}
else
{
Header = new BitmapImage(new Uri("pack://application:,,,/Resources/default_header.jpg"));
UserName = null;
}
}));
}));
} }
catch (Exception e) catch (Exception e)
{ {
@ -328,6 +334,8 @@ namespace DownKyi.ViewModels
string parameter = navigationContext.Parameters.GetValue<string>("Parameter"); string parameter = navigationContext.Parameters.GetValue<string>("Parameter");
if (parameter == null) if (parameter == null)
{ {
// 其他情况只更新设置的用户信息不更新UI
UpdateUserInfo(true);
return; return;
} }
@ -346,10 +354,10 @@ namespace DownKyi.ViewModels
{ {
UpdateUserInfo(); UpdateUserInfo();
} }
// 其他情况只更新设置的用户信息不更新UI
else else
{ {
GetUserInfo(); // 其他情况只更新设置的用户信息不更新UI
UpdateUserInfo(true);
} }
} }

Loading…
Cancel
Save