public async Task <ILoginResponse> LoginAsync(ILoginRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (WebBrowserNavigator.WebBrowser.Address != ChunithmNetUrl.Top) { await WebBrowserNavigator.LoadAsync(ChunithmNetUrl.Top); } await WebBrowserNavigator.EvaluatePageMoveScriptAsync($@" var inputs = document.getElementsByTagName('input'); var inputName = inputs[0]; var inputPassword = inputs[1]; inputName.value = '{request.SegaId}'; inputPassword.value = '{request.Password}'; formSubmit('sega_login'); "); var responseAsync = LoginResponse.CreateResponseAsync(WebBrowserNavigator.WebBrowser); await responseAsync; var response = responseAsync.Result; if (response.Success) { var aimeListParser = new AimeListParser(); response.AimeList = aimeListParser.Parse(response.DocumentText); } return(response); }
public async Task <ILoginResponse> LoginAsync(ILoginRequest request) { if (!IsLoggedIn()) { await GetToken(); } var loginContent = new FormUrlEncodedContent(new Dictionary <string, string>() { { "segaId", request.SegaId }, { "password", request.Password }, { "token", token }, }); var postLogin = client.PostAsync(ChunithmNetUrl.CreateUrl("submit"), loginContent); await postLogin; var getAimeList = client.GetAsync(ChunithmNetUrl.CreateUrl("aimeList")); await getAimeList; var response = new LoginResponse(getAimeList.Result); if (response.Success) { var aimeListParser = new AimeListParser(); response.AimeList = aimeListParser.Parse(response.DocumentText); if (response.AimeList == null) { response.OnInvalidAimeList(); } } return(response); }
public async Task <ILoginResponse> LoginAsync(ILoginRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (WebBrowserNavigator.WebBrowser.Url?.AbsoluteUri != ChunithmNetUrl.Top) { await WebBrowserNavigator.NavigateAsync(ChunithmNetUrl.Top); } { var document = WebBrowserNavigator.WebBrowser.Document; var inputs = document.GetElementsByTagName("input"); var segaIdInput = inputs.GetElementsByName("segaId").OfType <HtmlElement>().FirstOrDefault(); var passwordInput = inputs.GetElementsByName("password").OfType <HtmlElement>().FirstOrDefault(); segaIdInput.SetAttribute("value", request.SegaId); passwordInput.SetAttribute("value", request.Password); } var login = WebBrowserNavigator.InvokeScriptAsync("formSubmit", new[] { "sega_login" }); await login; var response = new LoginResponse(WebBrowserNavigator.WebBrowser); if (response.Success) { var aimeListParser = new AimeListParser(); response.AimeList = aimeListParser.Parse(WebBrowserNavigator.WebBrowser.DocumentText); } return(response); }