public async Task <string> RefreshTokenAsync(string authToken, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string url = baseUrl + Endpoints.RefreshToken; string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Content-Type", "application/json" }, { "Authorization", $"Bearer {authToken}" } }, proxy); return(json); }
public async Task <string> GetAuthTokenAsync(IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string apiKey = _configurationValues.ApiKey; string url = baseUrl + Endpoints.Login; string body = $"{{\"apiKey\": \"{apiKey}\"}}"; string json = await _httpDownloader.PostStringAsync(url, body, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Content-Type", "application/json" } }, proxy); return(json); }
//public async Task<string> GetAuthTokenAsync(IWebProxy proxy) //{ // string baseUrl = _configurationValues.ApiBaseUrl; // string apiKey = _configurationValues.ApiKey; // string url = baseUrl + Endpoints.NewAuthenticationToken; // Dictionary<string, string> queryParams = new Dictionary<string, string> // { // {"api_key", apiKey}, // }; // string queryString = "?"; // foreach (var param in queryParams) // { // if (queryString.Length > 1) queryString += "&"; // queryString += $"{WebUtility.UrlEncode(param.Key)}={WebUtility.UrlEncode(param.Value)}"; // } // url += queryString; // string json = await _httpDownloader.GetStringAsync(url, // new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) // { // {"Content-Type", "application/json"} // }, // proxy); // return json; //} public async Task <string> FindByExternalId(MovieSearchParams searchParams, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string apiKey = _configurationValues.ApiKey; string url = baseUrl; Dictionary <string, string> queryParams = new Dictionary <string, string> { { "api_key", apiKey }, }; if (!string.IsNullOrWhiteSpace(searchParams.ImdbId)) { url = baseUrl + string.Format(Endpoints.FindByExternalId, searchParams.ImdbId); queryParams.Add("external_source", "imdb_id"); } string queryString = "?"; foreach (var param in queryParams) { if (queryString.Length > 1) { queryString += "&"; } queryString += $"{WebUtility.UrlEncode(param.Key)}={WebUtility.UrlEncode(param.Value)}"; } url += queryString; string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Content-Type", "application/json" } }, proxy); return(json); }
public async Task <string> GetSeriesExtendedAsync(ISeriesIdentifier seriesIdentifier, string authToken, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string url = baseUrl + string.Format(Endpoints.GetSeries, seriesIdentifier.Id); string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Authorization", $"Bearer {authToken}" } }, proxy); return(json); }
public async Task <string> GetSeriesSearchResultsAsync(SeriesSearchParams searchParams, string authToken, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string url = baseUrl + Endpoints.SeriesSearch; Dictionary <string, string> queryParams = new Dictionary <string, string> { { "type", "series" }, }; if (!string.IsNullOrWhiteSpace(searchParams?.Name)) { queryParams.Add("query", searchParams.Name); } // TODO: Search by IMDB ID //if (!string.IsNullOrWhiteSpace(searchParams?.ImdbId)) // queryParams.Add("imdbId", searchParams.ImdbId); string queryString = "?"; foreach (var param in queryParams) { if (queryString.Length > 1) { queryString += "&"; } queryString += $"{WebUtility.UrlEncode(param.Key)}={WebUtility.UrlEncode(param.Value)}"; } url += queryString; string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Authorization", $"Bearer {authToken}" } }, proxy); return(json); }
public async Task <string> GetEpisodeTranslationAsync(long episodeId, string language, string authToken, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string url = baseUrl + string.Format(Endpoints.GetEpisodeTranslation, episodeId, language); string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Authorization", $"Bearer {authToken}" } // TODO: Extension method }, proxy); return(json); }
public async Task <string> GetMovieDetailsAsync(IMovieIdentifier movieIdentifier, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string apiKey = _configurationValues.ApiKey; string url = baseUrl + string.Format(Endpoints.GetMovieByMovieId, movieIdentifier.Id); Dictionary <string, string> queryParams = new Dictionary <string, string> { { "api_key", apiKey }, }; string queryString = "?"; foreach (var param in queryParams) { if (queryString.Length > 1) { queryString += "&"; } queryString += $"{WebUtility.UrlEncode(param.Key)}={WebUtility.UrlEncode(param.Value)}"; } url += queryString; string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Content-Type", "application/json" } }, proxy); return(json); }
public async Task <string> GetMovieSearchResultsAsync(MovieSearchParams searchParams, int page, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string apiKey = _configurationValues.ApiKey; string url = baseUrl + Endpoints.MovieSearch; Dictionary <string, string> queryParams = new Dictionary <string, string> { { "query", searchParams.Name }, { "page", page.ToString() }, { "include_adult", searchParams.IncludeAdult.ToString().ToLowerInvariant() }, { "api_key", apiKey }, }; if (searchParams.Year.HasValue) { queryParams.Add("year", searchParams.Year.Value.ToString()); } string queryString = "?"; foreach (var param in queryParams) { if (queryString.Length > 1) { queryString += "&"; } queryString += $"{WebUtility.UrlEncode(param.Key)}={WebUtility.UrlEncode(param.Value)}"; } url += queryString; string json = await _httpDownloader.GetStringAsync(url, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Content-Type", "application/json" } }, proxy); return(json); }
public async Task <string> GetMovieSearchResultsAsync(MovieSearchParams searchParams, IWebProxy proxy) { return(await GetMovieSearchResultsAsync(searchParams, 1, proxy)); }
public async Task <string> GetEpisodesAsync(ISeriesIdentifier seriesIdentifier, string authToken, IWebProxy proxy) { return(await GetEpisodesAsync(seriesIdentifier, 1, authToken, proxy)); }
public async Task <string> GetSeriesImagesAsync(ISeriesIdentifier seriesIdentifier, string authToken, IWebProxy proxy) { string baseUrl = _configurationValues.ApiBaseUrl; string url = baseUrl + string.Format(Endpoints.GetImages, seriesIdentifier.Id); List <string> keyTypes = new List <string> { "poster", "fanart", "series", "season", "seasonwide" }; Dictionary <string, Task <string> > imageTasks = new Dictionary <string, Task <string> >(); foreach (string keyType in keyTypes) { string queryUrl = url + $"?keyType={keyType}"; Task <string> task = _httpDownloader.GetStringAsync(queryUrl, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Authorization", $"Bearer {authToken}" } }, proxy); imageTasks.Add(keyType, task); } await Task.WhenAll(imageTasks.Values.Cast <Task>().ToArray()); string json = "{"; for (int i = 0; i < keyTypes.Count; i++) { string keyType = keyTypes[i]; string terminator = (i < (keyTypes.Count - 1)) ? "," : string.Empty; json += $"\t\"{keyType}\":{imageTasks[keyType].Result}{terminator}\r\n"; } json += "}"; return(json); }