Fixed: Don't crap on bad searches

This commit is contained in:
Qstick 2019-12-16 21:44:59 -05:00
parent 5d2ac0b86b
commit fcb31ac51b
1 changed files with 105 additions and 89 deletions

View File

@ -86,6 +86,7 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
request.SuppressHttpError = true; request.SuppressHttpError = true;
var response = _httpClient.Get<MovieResourceRoot>(request); var response = _httpClient.Get<MovieResourceRoot>(request);
if (response.StatusCode == HttpStatusCode.NotFound) if (response.StatusCode == HttpStatusCode.NotFound)
{ {
throw new MovieNotFoundException("Movie not found."); throw new MovieNotFoundException("Movie not found.");
@ -305,14 +306,17 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
// request.SuppressHttpError = true; // request.SuppressHttpError = true;
var response = _httpClient.Get<FindRoot>(request); var response = _httpClient.Get<FindRoot>(request);
if (response.StatusCode != HttpStatusCode.OK)
if (response.HasHttpError)
{
if (response.StatusCode == HttpStatusCode.NotFound)
{
throw new MovieNotFoundException(imdbId);
}
else
{ {
throw new HttpException(request, response); throw new HttpException(request, response);
} }
if (response.Headers.ContentType != HttpAccept.JsonCharset.Value)
{
throw new HttpException(request, response);
} }
// The dude abides, so should us, Lets be nice to TMDb // The dude abides, so should us, Lets be nice to TMDb
@ -328,9 +332,9 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
} }
} }
var resources = response.Resource; var resource = response.Resource.movie_results.FirstOrDefault();
return resources.movie_results.SelectList(MapMovie).FirstOrDefault(); return MapMovie(resource);
} }
public List<Movie> DiscoverNewMovies(string action) public List<Movie> DiscoverNewMovies(string action)
@ -380,6 +384,8 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
} }
public List<Movie> SearchForNewMovie(string title) public List<Movie> SearchForNewMovie(string title)
{
try
{ {
var lowerTitle = title.ToLower(); var lowerTitle = title.ToLower();
@ -478,6 +484,16 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
return movieResults.SelectList(MapMovie); return movieResults.SelectList(MapMovie);
} }
catch (HttpException)
{
throw new SkyHookException("Search for '{0}' failed. Unable to communicate with TMDb.", title);
}
catch (Exception ex)
{
_logger.Warn(ex, ex.Message);
throw new SkyHookException("Search for '{0}' failed. Invalid response received from TMDb.", title);
}
}
public Movie MapMovie(MovieResult result) public Movie MapMovie(MovieResult result)
{ {