Import episodes will import largest files first (to reject samples)

pull/2/head
Mark McDowall 11 years ago
parent 03149b1396
commit 741279b596

@ -48,7 +48,6 @@ namespace NzbDrone.Core.Test.MediaFiles
Episodes = new List<Episode> {episode}, Episodes = new List<Episode> {episode},
Path = @"C:\Test\TV\30 Rock\30 Rock - S01E01 - Pilit.avi".AsOsAgnostic(), Path = @"C:\Test\TV\30 Rock\30 Rock - S01E01 - Pilit.avi".AsOsAgnostic(),
Quality = new QualityModel(Quality.Bluray720p) Quality = new QualityModel(Quality.Bluray720p)
})); }));
} }
@ -125,5 +124,32 @@ namespace NzbDrone.Core.Test.MediaFiles
Mocker.GetMock<IEventAggregator>() Mocker.GetMock<IEventAggregator>()
.Verify(v => v.PublishEvent(It.IsAny<EpisodeImportedEvent>()), Times.Never()); .Verify(v => v.PublishEvent(It.IsAny<EpisodeImportedEvent>()), Times.Never());
} }
[Test]
public void should_import_larger_files_first()
{
var fileDecision = _approvedDecisions.First();
fileDecision.LocalEpisode.Size = 1.Gigabytes();
var sampleDecision = new ImportDecision
(new LocalEpisode
{
Series = fileDecision.LocalEpisode.Series,
Episodes = new List<Episode> {fileDecision.LocalEpisode.Episodes.First()},
Path = @"C:\Test\TV\30 Rock\30 Rock - S01E01 - Pilit.avi".AsOsAgnostic(),
Quality = new QualityModel(Quality.Bluray720p),
Size = 80.Megabytes()
});
var all = new List<ImportDecision>();
all.Add(fileDecision);
all.Add(sampleDecision);
var results = Subject.Import(all);
results.Should().HaveCount(1);
results.Should().ContainSingle(d => d.LocalEpisode.Size == fileDecision.LocalEpisode.Size);
}
} }
} }

@ -94,6 +94,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport
{ {
return decisions.Where(c => c.Approved) return decisions.Where(c => c.Approved)
.OrderByDescending(c => c.LocalEpisode.Quality) .OrderByDescending(c => c.LocalEpisode.Quality)
.ThenByDescending(c => c.LocalEpisode.Size)
.ToList(); .ToList();
} }
} }

Loading…
Cancel
Save