2018-03-14 20:41:36 +00:00
|
|
|
using System.Collections.Generic;
|
2013-11-16 05:03:42 +00:00
|
|
|
using System.Linq;
|
|
|
|
using FluentValidation.Results;
|
2017-06-17 13:02:58 +00:00
|
|
|
using NzbDrone.Core.Configuration;
|
2013-11-16 05:03:42 +00:00
|
|
|
using NzbDrone.Core.Parser.Model;
|
2018-03-14 20:41:36 +00:00
|
|
|
using NzbDrone.Core.Movies;
|
2013-11-16 05:03:42 +00:00
|
|
|
|
|
|
|
namespace NzbDrone.Core.Organizer
|
|
|
|
{
|
|
|
|
public interface IFilenameValidationService
|
|
|
|
{
|
2017-01-07 03:51:15 +00:00
|
|
|
ValidationFailure ValidateMovieFilename(SampleResult sampleResult);
|
2013-11-16 05:03:42 +00:00
|
|
|
}
|
|
|
|
|
2014-07-28 21:14:34 +00:00
|
|
|
public class FileNameValidationService : IFilenameValidationService
|
2013-11-16 05:03:42 +00:00
|
|
|
{
|
|
|
|
private const string ERROR_MESSAGE = "Produces invalid file names";
|
|
|
|
|
2017-01-07 03:51:15 +00:00
|
|
|
public ValidationFailure ValidateMovieFilename(SampleResult sampleResult)
|
|
|
|
{
|
|
|
|
var validationFailure = new ValidationFailure("MovieFormat", ERROR_MESSAGE);
|
2017-06-17 13:02:58 +00:00
|
|
|
var parsedMovieInfo = Parser.Parser.ParseMovieTitle(sampleResult.FileName, false); //We are not lenient when testing naming schemes
|
2017-01-07 03:51:15 +00:00
|
|
|
|
|
|
|
if(parsedMovieInfo == null)
|
|
|
|
{
|
|
|
|
return validationFailure;
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
2013-11-16 05:03:42 +00:00
|
|
|
}
|
|
|
|
}
|