mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-22 14:33:30 -07:00
Fixes an issue with movies not being added with same title slug as existing movies.
This commit is contained in:
parent
893e20c27b
commit
994e881ba6
3 changed files with 29 additions and 1 deletions
|
@ -24,13 +24,15 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
|
|||
private readonly IHttpRequestBuilderFactory _requestBuilder;
|
||||
private readonly IHttpRequestBuilderFactory _movieBuilder;
|
||||
private readonly ITmdbConfigService _configService;
|
||||
private readonly IMovieService _movieService;
|
||||
|
||||
public SkyHookProxy(IHttpClient httpClient, ISonarrCloudRequestBuilder requestBuilder, ITmdbConfigService configService, Logger logger)
|
||||
public SkyHookProxy(IHttpClient httpClient, ISonarrCloudRequestBuilder requestBuilder, ITmdbConfigService configService, IMovieService movieService, Logger logger)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_requestBuilder = requestBuilder.SkyHookTvdb;
|
||||
_movieBuilder = requestBuilder.TMDB;
|
||||
_configService = configService;
|
||||
_movieService = movieService;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
|
@ -93,6 +95,13 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
|
|||
movie.InCinemas = DateTime.Parse(resource.release_date);
|
||||
movie.Year = movie.InCinemas.Value.Year;
|
||||
|
||||
var slugResult = _movieService.FindByTitleSlug(movie.TitleSlug);
|
||||
if (slugResult != null)
|
||||
{
|
||||
_logger.Debug("Movie with this title slug already exists. Adding year...");
|
||||
}
|
||||
movie.TitleSlug += "-" + movie.Year.ToString();
|
||||
|
||||
movie.Images.Add(_configService.GetCoverForURL(resource.poster_path, MediaCoverTypes.Poster));//TODO: Update to load image specs from tmdb page!
|
||||
movie.Images.Add(_configService.GetCoverForURL(resource.backdrop_path, MediaCoverTypes.Banner));
|
||||
movie.Runtime = resource.runtime;
|
||||
|
@ -320,6 +329,14 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
|
|||
string titleSlug = result.title;
|
||||
imdbMovie.TitleSlug = titleSlug.ToLower().Replace(" ", "-");
|
||||
imdbMovie.Year = DateTime.Parse(result.release_date).Year;
|
||||
|
||||
var slugResult = _movieService.FindByTitleSlug(imdbMovie.TitleSlug);
|
||||
if (slugResult != null)
|
||||
{
|
||||
_logger.Debug("Movie with this title slug already exists. Adding year...");
|
||||
}
|
||||
imdbMovie.TitleSlug += "-" + imdbMovie.Year.ToString();
|
||||
|
||||
imdbMovie.Images = new List<MediaCover.MediaCover>();
|
||||
imdbMovie.Overview = result.overview;
|
||||
try
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace NzbDrone.Core.Tv
|
|||
Movie FindByTitle(string cleanTitle);
|
||||
Movie FindByTitle(string cleanTitle, int year);
|
||||
Movie FindByImdbId(string imdbid);
|
||||
Movie FindByTitleSlug(string slug);
|
||||
List<Movie> GetMoviesByFileId(int fileId);
|
||||
void SetFileId(int fileId, int movieId);
|
||||
}
|
||||
|
@ -114,5 +115,9 @@ namespace NzbDrone.Core.Tv
|
|||
SetFields(new Movie { Id = episodeId, MovieFileId = fileId }, movie => movie.MovieFileId);
|
||||
}
|
||||
|
||||
public Movie FindByTitleSlug(string slug)
|
||||
{
|
||||
return Query.Where(m => m.TitleSlug == slug).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -24,6 +24,7 @@ namespace NzbDrone.Core.Tv
|
|||
Movie FindByTitle(string title);
|
||||
Movie FindByTitle(string title, int year);
|
||||
Movie FindByTitleInexact(string title);
|
||||
Movie FindByTitleSlug(string slug);
|
||||
Movie GetMovieByFileId(int fileId);
|
||||
void DeleteMovie(int movieId, bool deleteFiles);
|
||||
List<Movie> GetAllMovies();
|
||||
|
@ -218,5 +219,10 @@ namespace NzbDrone.Core.Tv
|
|||
{
|
||||
return _movieRepository.GetMoviesByFileId(fileId).First();
|
||||
}
|
||||
|
||||
public Movie FindByTitleSlug(string slug)
|
||||
{
|
||||
return _movieRepository.FindByTitleSlug(slug);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue