diff --git a/PlexRequests.Api/TheMovieDbApi.cs b/PlexRequests.Api/TheMovieDbApi.cs index 0e860d58a..eba5e115e 100644 --- a/PlexRequests.Api/TheMovieDbApi.cs +++ b/PlexRequests.Api/TheMovieDbApi.cs @@ -47,25 +47,18 @@ namespace PlexRequests.Api public async Task> SearchMovie(string searchTerm) { var results = await Client.SearchMovie(searchTerm); - return results.Results; - } - - [Obsolete("Should use TvMaze for TV")] - public async Task> SearchTv(string searchTerm) - { - var results = await Client.SearchTvShow(searchTerm); - return results.Results; + return results?.Results ?? new List(); } public async Task> GetCurrentPlayingMovies() { var movies = await Client.GetMovieList(MovieListType.NowPlaying); - return movies.Results; + return movies?.Results ?? new List(); } public async Task> GetUpcomingMovies() { var movies = await Client.GetMovieList(MovieListType.Upcoming); - return movies.Results; + return movies?.Results ?? new List(); } public async Task GetMovieInformation(int tmdbId) @@ -77,14 +70,7 @@ namespace PlexRequests.Api public async Task GetMovieInformation(string imdbId) { var movies = await Client.GetMovie(imdbId); - return movies; - } - - [Obsolete("Should use TvMaze for TV")] - public async Task GetTvShowInformation(int tmdbId) - { - var show = await Client.GetTvShow(tmdbId); - return show; + return movies ?? new Movie(); } } } diff --git a/PlexRequests.Services/Jobs/RecentlyAdded.cs b/PlexRequests.Services/Jobs/RecentlyAdded.cs index 8db8c4084..fcfb1d250 100644 --- a/PlexRequests.Services/Jobs/RecentlyAdded.cs +++ b/PlexRequests.Services/Jobs/RecentlyAdded.cs @@ -147,7 +147,10 @@ namespace PlexRequests.Services.Jobs var imdbId = PlexHelper.GetProviderIdFromPlexGuid(plexGUID); var info = _movieApi.GetMovieInformation(imdbId).Result; - + if (info == null) + { + throw new Exception($"Movie with Imdb id {imdbId} returned null from the MovieApi"); + } AddImageInsideTable(sb, $"https://image.tmdb.org/t/p/w500{info.BackdropPath}"); sb.Append(""); diff --git a/PlexRequests.UI/Modules/SearchModule.cs b/PlexRequests.UI/Modules/SearchModule.cs index 31003421d..51c348d31 100644 --- a/PlexRequests.UI/Modules/SearchModule.cs +++ b/PlexRequests.UI/Modules/SearchModule.cs @@ -257,7 +257,7 @@ namespace PlexRequests.UI.Modules var movieInfoTask = await MovieApi.GetMovieInformation(movie.Id).ConfigureAwait(false); // TODO needs to be careful about this, it's adding extra time to search... // https://www.themoviedb.org/talk/5807f4cdc3a36812160041f2 - imdbId = movieInfoTask.ImdbId; + imdbId = movieInfoTask?.ImdbId; counter++; } @@ -492,6 +492,15 @@ namespace PlexRequests.UI.Modules Analytics.TrackEventAsync(Category.Search, Action.Request, "Movie", Username, CookieHelper.GetAnalyticClientId(Cookies)); var movieInfo = await MovieApi.GetMovieInformation(movieId); + if (movieInfo == null) + { + return + Response.AsJson(new JsonResponseModel + { + Result = false, + Message = "There was an issue adding this movie!" + }); + } var fullMovieName = $"{movieInfo.Title}{(movieInfo.ReleaseDate.HasValue ? $" ({movieInfo.ReleaseDate.Value.Year})" : string.Empty)}";