public async Task <IMusicDetailGetResponse> GetMusicDetailAsync(IMusicDetailGetRequest 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 = 99;
formSubmitAddParam('music_genre', 'level_master');
");

            await WebBrowserNavigator.EvaluatePageMoveScriptAsync($@"
formSubmitAddParam('music_detail', 'musicId_{request.Id}');
");

            var   responseAsync = MusicDetailGetResponse.CreateResponseAsync(WebBrowserNavigator.WebBrowser);
            await responseAsync;
            var   response = responseAsync.Result;

            if (response.Success)
            {
                var musicDetailParser = new MusicDetailParser();
                response.MusicDetail = musicDetailParser.Parse(response.DocumentText);
            }
            return(response);
        }
Exemple #2
0
        public async Task <IMusicDetailGetResponse> GetMusicDetailAsync(IMusicDetailGetRequest request)
        {
            if (WebBrowserNavigator.WebBrowser.Url?.AbsoluteUri != ChunithmNetUrl.MusicGenre)
            {
                await WebBrowserNavigator.NavigateAsync(ChunithmNetUrl.MusicGenre);
            }

            var   musicGenre = WebBrowserNavigator.InvokeScriptAsync("formSubmitAddParam", new[] { "music_genre", "level_master" });
            await musicGenre;

            var   musicDetail = WebBrowserNavigator.InvokeScriptAsync("formSubmitAddParam", new[] { "music_detail", $"musicId_{request.Id}" });
            await musicDetail;

            var response = new MusicDetailGetResponse(WebBrowserNavigator.WebBrowser);

            if (response.Success)
            {
                var musicDetailParser = new MusicDetailParser();
                response.MusicDetail = musicDetailParser.Parse(WebBrowserNavigator.WebBrowser.DocumentText);
            }
            return(response);
        }
Exemple #3
0
        public async Task <IMusicDetailGetResponse> GetMusicDetailAsync(IMusicDetailGetRequest request)
        {
            var musicDetailContent = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "idx", request.Id.ToString() },
                { "token", token },
            });

            var   musicDetailRequest = client.PostAsync(ChunithmNetUrl.CreateUrl("record/musicGenre/sendMusicDetail"), musicDetailContent);
            await musicDetailRequest;

            var   musicDetail = client.GetAsync(ChunithmNetUrl.CreateUrl("record/musicDetail"));
            await musicDetail;

            var response = new MusicDetailGetResponse(musicDetail.Result);

            if (response.Success)
            {
                var musicDetailParser = new MusicDetailParser();
                response.MusicDetail = musicDetailParser.Parse(response.DocumentText);
            }

            return(response);
        }