Example #1
0
        public async Task <TvShow> GetTvShowDetailsAsync(SearchedTvShow searchedTvShow)
        {
            var retryCount = 0;

            while (retryCount <= 5 && _loadedCache)
            {
                try
                {
                    var tvDbId         = searchedTvShow.TheTvDbId;
                    int?sonarrSeriesId = null;

                    lock (_lock)
                    {
                        sonarrSeriesId = _tvDbToSonarrId.ContainsKey(tvDbId) ? _tvDbToSonarrId[tvDbId] : (int?)null;
                    }

                    var jsonTvShow = await FindSeriesInSonarrAsync(tvDbId, sonarrSeriesId?.ToString());

                    var convertedTvShow = Convert(jsonTvShow, jsonTvShow.seasons, jsonTvShow.id.HasValue ? await GetSonarrEpisodesAsync(jsonTvShow.id.Value) : new Dictionary <int, JSONEpisode[]>());
                    convertedTvShow.Banner = searchedTvShow.Banner;

                    return(convertedTvShow);
                }
                catch (System.Exception ex)
                {
                    _logger.LogWarning("An error occurred while getting tv show details with Sonarr: " + ex.Message);
                    retryCount++;
                    await Task.Delay(1000);
                }
            }

            throw new System.Exception("An error occurred while searching for tv show details with Sonarr");
        }
Example #2
0
        public async Task <SearchedTvShow> SearchTvShowAsync(int tvDbId)
        {
            var retryCount = 0;

            while (retryCount <= 5 && _loadedCache)
            {
                try
                {
                    var jsonTvShow = await SearchSerieByTvDbIdAsync(tvDbId);

                    var searchedTvShow = new SearchedTvShow
                    {
                        TheTvDbId  = jsonTvShow.tvdbId.Value,
                        Title      = jsonTvShow.title,
                        FirstAired = jsonTvShow.year > 0 ? jsonTvShow.year.ToString() : string.Empty,
                        Banner     = jsonTvShow.remotePoster
                    };

                    return(searchedTvShow.TheTvDbId == tvDbId ? searchedTvShow : null);
                }
                catch (System.Exception ex)
                {
                    _logger.LogError(ex, $"An error occurred while searching for tv show by tvDbId \"{tvDbId}\" from Sonarr: " + ex.Message);
                    retryCount++;
                    await Task.Delay(1000);
                }
            }

            throw new System.Exception("An error occurred while searching for tv show by tvDbId from Sonarr");
        }
Example #3
0
        public async Task <SearchedTvShow> SearchTvShowAsync(TvShowRequest request, int tvDbId)
        {
            RefreshSonarrCache();

            try
            {
                var jsonTvShow = await SearchSerieByTvDbIdAsync(tvDbId);

                var searchedTvShow = new SearchedTvShow
                {
                    TheTvDbId  = jsonTvShow.tvdbId.Value,
                    Title      = jsonTvShow.title,
                    FirstAired = jsonTvShow.year > 0 ? jsonTvShow.year.ToString() : string.Empty,
                    Banner     = jsonTvShow.remotePoster
                };

                return(searchedTvShow.TheTvDbId == tvDbId ? searchedTvShow : null);
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex, $"An error occurred while searching for tv show by tvDbId \"{tvDbId}\" from Sonarr: " + ex.Message);
            }

            throw new System.Exception("An error occurred while searching for tv show by tvDbId from Sonarr");
        }
Example #4
0
        public async Task <TvShow> GetTvShowDetailsAsync(SearchedTvShow searchedTvShow)
        {
            try
            {
                var tvDbId     = searchedTvShow.TheTvDbId;
                var jsonTvShow = await FindSeriesInSonarrAsync(tvDbId);

                var convertedTvShow = Convert(jsonTvShow, jsonTvShow.seasons, jsonTvShow.id.HasValue ? await GetSonarrEpisodesAsync(jsonTvShow.id.Value) : new Dictionary <int, JSONEpisode[]>());
                convertedTvShow.Banner = searchedTvShow.Banner;

                return(convertedTvShow);
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex, "An error occurred while getting tv show details with Sonarr: " + ex.Message);
            }

            throw new System.Exception("An error occurred while searching for tv show details with Sonarr");
        }
Example #5
0
        public async Task <TvShow> GetTvShowDetailsAsync(SearchedTvShow searchedTvShow)
        {
            try
            {
                var response = await HttpGetAsync($"{BaseURL}tv/{searchedTvShow.TheTvDbId}");

                await response.ThrowIfNotSuccessfulAsync("OverseerrGetTvShowDetail failed", x => x.error);

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

                var movie = JsonConvert.DeserializeObject <JSONMedia>(jsonResponse);

                return(ConvertTvShow(movie));
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex, $"An error occurred while searching for a tv show by tmdbId \"{searchedTvShow.TheTvDbId}\" from Overseerr: " + ex.Message);
                throw new System.Exception($"An error occurred while searching for a tv show by tmdbId \"{searchedTvShow.TheTvDbId}\" from Overseerr: " + ex.Message);
            }
        }
Example #6
0
        public async Task <TvShow> GetTvShowDetailsAsync(SearchedTvShow searchedTvShow)
        {
            var retryCount = 0;

            while (retryCount <= 5)
            {
                try
                {
                    var jsonTvShow = await FindTvShowByTheTvDbIdAsync(searchedTvShow.TheTvDbId.ToString());

                    return(Convert(jsonTvShow));
                }
                catch (System.Exception ex)
                {
                    _logger.LogError(ex, "An error occurred while getting details for a tv show from Ombi: " + ex.Message);
                    retryCount++;
                    await Task.Delay(1000);
                }
            }

            throw new System.Exception("An error occurred while getting details for a tv show from Ombi");
        }
Example #7
0
        public async Task <SearchedTvShow> SearchTvShowAsync(int tvDbId)
        {
            var retryCount = 0;

            while (retryCount <= 5)
            {
                try
                {
                    var response = await HttpGetAsync($"{BaseURL}/api/v1/Search/Tv/info/{tvDbId}");

                    await response.ThrowIfNotSuccessfulAsync("OmbiSearchTvShowByTvDbId failed", x => x.error);

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

                    var jsonTvShow = JsonConvert.DeserializeObject <JSONTvShow>(jsonResponse);

                    var searchedTvShow = new SearchedTvShow
                    {
                        Title      = jsonTvShow.title,
                        Banner     = jsonTvShow.banner,
                        TheTvDbId  = jsonTvShow.id,
                        FirstAired = jsonTvShow.firstAired,
                    };

                    return(searchedTvShow.TheTvDbId == tvDbId ? searchedTvShow : null);
                }
                catch (System.Exception ex)
                {
                    _logger.LogError(ex, $"An error occurred while searching for tv show by tvDbId \"{tvDbId}\" from Ombi: " + ex.Message);
                    retryCount++;
                    await Task.Delay(1000);
                }
            }

            throw new System.Exception("An error occurred while searching for tv show by tvDbId from Ombi");
        }
 private string GetFormatedTvShowTitle(SearchedTvShow tvShow)
 {
     return(GetFormatedTvShowTitle(tvShow.Title, tvShow.FirstAired));
 }
Example #9
0
 public Task <TvShow> GetTvShowDetailsAsync(SearchedTvShow searchedTvShow)
 {
     return(CreateInstance <ITvShowSearcher>().GetTvShowDetailsAsync(searchedTvShow));
 }