Esempio n. 1
0
        public async Task <ImageQueryViewModel> GetImageQuery(int id, string keyType, string token, string resolution = "", string subKey = "")
        {
            var client = TheTvDbHttpClient.GetClient();

            var parametersToAdd = new System.Collections.Generic.Dictionary <string, string>();

            if (!string.IsNullOrEmpty(keyType))
            {
                parametersToAdd.Add("keyType", keyType);
            }
            if (!string.IsNullOrEmpty(resolution))
            {
                parametersToAdd.Add("resolution", resolution);
            }
            if (!string.IsNullOrEmpty(subKey))
            {
                parametersToAdd.Add("subKey", subKey);
            }

            var queryUrl = $"/series/{id}/images/query";
            var queryUrlWithParameters = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(queryUrl, parametersToAdd);

            var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage(queryUrlWithParameters, token));

            var result = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <ImageQueryViewModel>(result));
        }
Esempio n. 2
0
        public async Task <SearchResponse> GetSearch(string token, string name = "", string imdbId = "", string zap2ItId = "")
        {
            var client = TheTvDbHttpClient.GetClient();

            var parametersToAdd = new System.Collections.Generic.Dictionary <string, string>();

            if (!string.IsNullOrEmpty(name))
            {
                parametersToAdd.Add("name", name);
            }
            if (!string.IsNullOrEmpty(imdbId))
            {
                parametersToAdd.Add("imdbId", imdbId);
            }
            if (!string.IsNullOrEmpty(zap2ItId))
            {
                parametersToAdd.Add("zap2ItId", zap2ItId);
            }

            var queryUrl = $"/search/series";
            var queryUrlWithParameters = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(queryUrl, parametersToAdd);

            var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage(queryUrlWithParameters, token));

            var result = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <SearchResponse>(result));
        }
        public async Task <TokenResponse> RefreshToken(string token)
        {
            var client = TheTvDbHttpClient.GetClient();

            var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage($"/refresh_token", token));

            var result = await response.Content.ReadAsStringAsync();

            if (!response.IsSuccessStatusCode)
            {
                _logger.LogError($"[{response.StatusCode}] {result}");
                return(new TokenResponse()
                {
                    Error = $"Error {response.StatusCode}"
                });
            }

            var tokenResponse = JsonConvert.DeserializeObject <TokenResponse>(result);

            var securityTokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();

            var jwtToken = securityTokenHandler.ReadJwtToken(tokenResponse.Token);

            tokenResponse.Expire = jwtToken.Payload.Exp;

            return(tokenResponse);
        }
        public async Task <TokenResponse> Login(string apikey, string username = "", string userkey = "")
        {
            var client = TheTvDbHttpClient.GetClient();

            var request = new { apikey, username, userkey };

            var response = await client.PostAsJsonAsync("/login", request);

            var result = await response.Content.ReadAsStringAsync();

            if (!response.IsSuccessStatusCode)
            {
                _logger.LogError($"[{response.StatusCode}] {result}");
                return(new TokenResponse()
                {
                    Error = $"Error {response.StatusCode}"
                });
            }

            var tokenResponse = JsonConvert.DeserializeObject <TokenResponse>(result);

            var securityTokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();

            var jwtToken = securityTokenHandler.ReadJwtToken(tokenResponse.Token);

            tokenResponse.Expire = jwtToken.Payload.Exp;

            return(tokenResponse);
        }
Esempio n. 5
0
        public async Task <SerieResponse> GetById(int id, string token)
        {
            var client   = TheTvDbHttpClient.GetClient();
            var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage($"/series/{id}", token));

            var result = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <SerieResponse>(result));
        }
Esempio n. 6
0
        public async Task <ImageQueryParamsViewModel> GetImageQueryParams(int id, string token)
        {
            var client   = TheTvDbHttpClient.GetClient();
            var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage($"/series/{id}/images/query/params", token));

            var result = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <ImageQueryParamsViewModel>(result));
        }
Esempio n. 7
0
        //TODO: add support for paging
        public async Task <EpisodesResponse> GetEpisodesBySerieId(int id, string token, int page = 1)
        {
            var client = TheTvDbHttpClient.GetClient();

            var parametersToAdd = new System.Collections.Generic.Dictionary <string, string>();

            if (page != 1)
            {
                parametersToAdd.Add("page", page.ToString());
            }

            var queryUrl = $"/series/{id}/episodes";
            var queryUrlWithParameters = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(queryUrl, parametersToAdd);

            var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage(queryUrlWithParameters, token));

            var result = await response.Content.ReadAsStringAsync();

            var parsedResult = JsonConvert.DeserializeObject <EpisodesResponse>(result);

            parsedResult.Links.Current = page;

            return(parsedResult);
        }