You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Prowlarr/src/NzbDrone.Core/MediaFiles/MovieImport/Specifications/SameFileSpecification.cs

46 lines
1.4 KiB

using System.Linq;
using NLog;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.Download;
using NzbDrone.Core.Parser.Model;
namespace NzbDrone.Core.MediaFiles.MovieImport.Specifications
{
public class SameFileSpecification : IImportDecisionEngineSpecification
{
private readonly Logger _logger;
public SameFileSpecification(Logger logger)
{
_logger = logger;
}
public Decision IsSatisfiedBy(LocalMovie localMovie, DownloadClientItem downloadClientItem)
{
var movieFile = localMovie.Movie.MovieFile;
if (localMovie.Movie.MovieFileId == 0)
{
_logger.Debug("No existing movie file, skipping");
return Decision.Accept();
}
if (movieFile == null)
{
var movie = localMovie.Movie;
_logger.Trace("Unable to get movie file details from the DB. MovieId: {0} MovieFileId: {1}", movie.Id, movie.MovieFileId);
return Decision.Accept();
}
if (movieFile.Size == localMovie.Size)
{
_logger.Debug("'{0}' Has the same filesize as existing file", localMovie.Path);
return Decision.Reject("Has the same filesize as existing file");
}
return Decision.Accept();
}
}
}