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"); }
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"); }
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"); }
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"); }
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); } }
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"); }
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)); }
public Task <TvShow> GetTvShowDetailsAsync(SearchedTvShow searchedTvShow) { return(CreateInstance <ITvShowSearcher>().GetTvShowDetailsAsync(searchedTvShow)); }