From 663b82f5a7c1a5bf8a089b3f1399c111b58bf1b8 Mon Sep 17 00:00:00 2001 From: erri120 Date: Sun, 26 Apr 2020 11:31:00 +0200 Subject: [PATCH] Multiple MEGA login fixes --- Wabbajack.Lib/Downloaders/MEGADownloader.cs | 5 ++--- .../Settings/CredentialsLoginVM.cs | 22 +++++++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Wabbajack.Lib/Downloaders/MEGADownloader.cs b/Wabbajack.Lib/Downloaders/MEGADownloader.cs index e318a06a..f3a0d131 100644 --- a/Wabbajack.Lib/Downloaders/MEGADownloader.cs +++ b/Wabbajack.Lib/Downloaders/MEGADownloader.cs @@ -4,7 +4,6 @@ using System.Reactive.Linq; using System.Security; using System.Threading.Tasks; using CG.Web.MegaApiClient; -using Newtonsoft.Json; using ReactiveUI; using Wabbajack.Common; using Wabbajack.Common.Serialization.Json; @@ -97,7 +96,7 @@ namespace Wabbajack.Lib.Downloaders private static MegaApiClient MegaApiClient => DownloadDispatcher.GetInstance().MegaApiClient; - private void MegaLogin() + private static void MegaLogin() { if (MegaApiClient.IsLoggedIn) return; @@ -132,7 +131,7 @@ namespace Wabbajack.Lib.Downloaders var fileLink = new Uri(Url); try { - var node = MegaApiClient.GetNodeFromLink(fileLink); + var node = await MegaApiClient.GetNodeFromLinkAsync(fileLink); return true; } catch (Exception) diff --git a/Wabbajack/View Models/Settings/CredentialsLoginVM.cs b/Wabbajack/View Models/Settings/CredentialsLoginVM.cs index 08f860cc..3a9f50d2 100644 --- a/Wabbajack/View Models/Settings/CredentialsLoginVM.cs +++ b/Wabbajack/View Models/Settings/CredentialsLoginVM.cs @@ -1,4 +1,5 @@ -using System.Reactive; +using System; +using System.Net.Mail; using System.Reactive.Linq; using System.Security; using ReactiveUI; @@ -26,7 +27,7 @@ namespace Wabbajack _downloader = downloader; _loginEnabled = this.WhenAny(x => x.Username) - .Select(username => !string.IsNullOrWhiteSpace(username)) + .Select(IsValidAddress) .ToGuiProperty(this, nameof(LoginEnabled)); } @@ -36,5 +37,22 @@ namespace Wabbajack ReturnMessage = _downloader.LoginWithCredentials(Username, password); password.Clear(); } + + private static bool IsValidAddress(string s) + { + if (string.IsNullOrWhiteSpace(s)) + return false; + + try + { + var _ = new MailAddress(s); + } + catch (Exception) + { + return false; + } + + return true; + } } }