public async Task <IMusicGenreGetResponse> GetMusicGenreAsync(IMusicGenreGetRequest request) { if (WebBrowserNavigator.WebBrowser.Url?.AbsoluteUri != ChunithmNetUrl.MusicGenre) { await WebBrowserNavigator.NavigateAsync(ChunithmNetUrl.MusicGenre); } { var documente = WebBrowserNavigator.WebBrowser.Document; var musicGenreForm = documente.GetElementById("music_genre"); var genre = musicGenreForm.GetElementsByTagName("select").OfType <HtmlElement>().FirstOrDefault(); genre.SetAttribute("value", request.GenreCode.ToString()); } var musicGenre = WebBrowserNavigator.InvokeScriptAsync("formSubmitAddParam", new[] { "music_genre", ToDifficultyParam(request.Difficulty) }); await musicGenre; var response = new MusicGenreGetResponse(WebBrowserNavigator.WebBrowser); if (response.Success) { var musicGenreParser = new MusicGenreParser(); response.MusicGenre = musicGenreParser.Parse(WebBrowserNavigator.WebBrowser.DocumentText); } return(response); }
public async Task <IMusicGenreGetResponse> GetMusicGenreAsync(IMusicGenreGetRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (WebBrowserNavigator.WebBrowser.Address != ChunithmNetUrl.MusicGenre) { await WebBrowserNavigator.LoadAsync(ChunithmNetUrl.MusicGenre); } await WebBrowserNavigator.EvaluatePageMoveScriptAsync($@" var genreSelecter = document.getElementsByName('genre')[0]; genreSelecter.value = { request.GenreCode }; formSubmitAddParam('music_genre','{ ToDifficultyParam(request.Difficulty) }'); "); var responseAsync = MusicGenreGetResponse.CreateResponseAsync(WebBrowserNavigator.WebBrowser); await responseAsync; var response = responseAsync.Result; if (response.Success) { var musicGenreParser = new MusicGenreParser(); response.MusicGenre = musicGenreParser.Parse(response.DocumentText); } return(response); }
public async Task <IMusicGenreGetResponse> GetMusicGenreAsync(IMusicGenreGetRequest request) { var musicGenreContent = new FormUrlEncodedContent(new Dictionary <string, string> { { "genre", request.GenreCode.ToString() }, { "token", token }, }); var musicGenreRequest = client.PostAsync(ChunithmNetUrl.CreateUrl(GetPostPath(request.Difficulty)), musicGenreContent); await musicGenreRequest; var musicGenre = client.GetAsync(ChunithmNetUrl.CreateUrl(GetRequestPath(request.Difficulty))); await musicGenre; var response = new MusicGenreGetResponse(musicGenre.Result); if (response.Success) { response.MusicGenre = new MusicGenreParser().Parse(response.DocumentText); } return(response); }