From 1f22cae4f80ac452786c1a975309c2e055519cce Mon Sep 17 00:00:00 2001 From: ta264 Date: Mon, 26 Jul 2021 21:12:49 +0100 Subject: [PATCH] Fixed: Import highest quality file first, not largest size --- .../MediaFiles/ImportApprovedTracksFixture.cs | 35 ++++++++++++++++++- .../BookImport/ImportApprovedBooks.cs | 2 +- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs index 7fa95d711..16adcd913 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs @@ -165,7 +165,40 @@ public void should_not_move_existing_files() } [Test] - public void should_import_larger_files_first() + public void should_import_higher_quality_files_first() + { + var lqDecision = _approvedDecisions.First(); + lqDecision.Item.Quality = new QualityModel(Quality.MOBI); + lqDecision.Item.Size = 10.Megabytes(); + + var hqDecision = new ImportDecision( + new LocalBook + { + Author = lqDecision.Item.Author, + Book = lqDecision.Item.Book, + Edition = lqDecision.Item.Edition, + Path = @"C:\Test\Music\Alien Ant Farm\Alien Ant Farm - 01 - Pilot.mp3".AsOsAgnostic(), + Quality = new QualityModel(Quality.AZW3), + Size = 1.Megabytes(), + FileTrackInfo = new ParsedTrackInfo + { + ReleaseGroup = "DRONE" + } + }); + + var all = new List>(); + all.Add(lqDecision); + all.Add(hqDecision); + + var results = Subject.Import(all, false); + + results.Should().HaveCount(all.Count); + results.Should().ContainSingle(d => d.Result == ImportResultType.Imported); + results.Should().ContainSingle(d => d.Result == ImportResultType.Imported && d.ImportDecision.Item.Size == hqDecision.Item.Size); + } + + [Test] + public void should_import_larger_files_for_same_quality_first() { var fileDecision = _approvedDecisions.First(); fileDecision.Item.Size = 1.Gigabytes(); diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs b/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs index 8e2f1ba07..8d12d3278 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs @@ -142,7 +142,7 @@ public List Import(List> decisions, bool var filesToAdd = new List(qualifiedImports.Count); var trackImportedEvents = new List(qualifiedImports.Count); - foreach (var importDecision in qualifiedImports.OrderByDescending(e => e.Item.Size)) + foreach (var importDecision in qualifiedImports) { var localTrack = importDecision.Item; var oldFiles = new List();