Ejemplo n.º 1
0
        public async Task <WebPageResponse> GetWebPage(string rawAnnotatableUrl, string canonicalUrl = null,
                                                       string ogUrl = null)
        {
            var endpoint = "/web_pages/lookup?raw_annotatable_url=" + rawAnnotatableUrl;

            if (!string.IsNullOrWhiteSpace(canonicalUrl))
            {
                endpoint += "&canonical_url=" + canonicalUrl;
            }

            if (!string.IsNullOrWhiteSpace(ogUrl))
            {
                endpoint += "&og_url=" + ogUrl;
            }

            var response = await _geniusRestClient.GetASync(endpoint);

            using (var input = new StringReader(response))
            {
                var webPageResponse = JSON.Deserialize <WebPageResponse>(input);
                if (webPageResponse.Meta.Status >= 400)
                {
                    throw new HttpRequestException(webPageResponse.Meta.Status +
                                                   webPageResponse.Meta.Message);
                }

                return(webPageResponse);
            }
        }
Ejemplo n.º 2
0
        public async Task <ArtistResponse> GetArtist(ulong artistId)
        {
            var response = await _geniusRestClient.GetASync("/artists/" + artistId + "?text_format=html");

            using (var input = new StringReader(response))
            {
                var artistResponse = JSON.Deserialize <ArtistResponse>(input);
                if (artistResponse.Meta.Status >= 400)
                {
                    throw new HttpRequestException(artistResponse.Meta.Status +
                                                   artistResponse.Meta.Message);
                }

                return(artistResponse);
            }
        }
Ejemplo n.º 3
0
        public async Task <AccountResponse> GetAccount()
        {
            var response = await _geniusRestClient.GetASync("/account?text_format=html");

            using (var input = new StringReader(response))
            {
                return(JSON.Deserialize <AccountResponse>(input));
            }
        }
Ejemplo n.º 4
0
        public async Task <ReferentResponse> GetReferent(string createdById = null, string songId  = null,
                                                         string webPageId   = null, string perPage = null, string page = null)
        {
            var urlParameters = "";

            if (!string.IsNullOrWhiteSpace(songId) && !string.IsNullOrWhiteSpace(webPageId))
            {
                throw new ArgumentException("You may pass only one of songId and webPageId, not both.");
            }

            if (string.IsNullOrWhiteSpace(songId))
            {
                urlParameters += "web_page_id=" + webPageId;
            }
            else
            {
                urlParameters += "song_id=" + songId;
            }

            if (!string.IsNullOrWhiteSpace(createdById))
            {
                urlParameters += "&created_by_id=" + createdById;
            }

            if (!string.IsNullOrWhiteSpace(perPage))
            {
                urlParameters += "&per_page=" + perPage;
            }

            if (!string.IsNullOrWhiteSpace(page))
            {
                urlParameters += "&page=" + page;
            }


            var response = await _geniusRestClient.GetASync("/referents?" + urlParameters);

            using (var input = new StringReader(response))
            {
                var annotationResponse = JSON.Deserialize <ReferentResponse>(input);
                if (annotationResponse.Meta.Status >= 400)
                {
                    throw new HttpRequestException(annotationResponse.Meta.Status +
                                                   annotationResponse.Meta.Message);
                }

                return(annotationResponse);
            }
        }
Ejemplo n.º 5
0
        public async Task <SearchResponse> Search(string query)
        {
            var response = await _geniusRestClient.GetASync("/search?q=/" + query);

            using (var input = new StringReader(response))
            {
                var searchResponse = JSON.Deserialize <SearchResponse>(input);
                if (searchResponse.Meta.Status >= 400)
                {
                    throw new HttpRequestException(searchResponse.Meta.Status +
                                                   searchResponse.Meta.Message);
                }

                return(searchResponse);
            }
        }