Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }