From ea9b46e92208bb067a4aa97727bac46980fe2ade Mon Sep 17 00:00:00 2001 From: Jendrik Weise Date: Sun, 21 Jan 2024 00:19:33 +0100 Subject: [PATCH] Order for track/album import aggregators (cherry picked from commit 69f99373e56a2fca49a2be645e6640624cf12339) Closes #4495 Closes #4496 --- .../MediaFiles/TrackImport/Aggregation/AggregationService.cs | 5 +++-- .../Aggregation/Aggregators/AggregateFilenameInfo.cs | 2 ++ .../TrackImport/Aggregation/Aggregators/AggregateQuality.cs | 2 ++ .../Aggregation/Aggregators/AggregateReleaseGroup.cs | 2 ++ .../Aggregation/Aggregators/IAggregateLocalTrack.cs | 1 + 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/AggregationService.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/AggregationService.cs index e91b05f11..c9fc89c86 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/AggregationService.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/AggregationService.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Core.MediaFiles.TrackImport.Aggregation.Aggregators; @@ -26,8 +27,8 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Aggregation IDiskProvider diskProvider, Logger logger) { - _trackAugmenters = trackAugmenters; - _albumAugmenters = albumAugmenters; + _trackAugmenters = trackAugmenters.OrderBy(a => a.Order).ToList(); + _albumAugmenters = albumAugmenters.OrderBy(a => a.Order).ToList(); _diskProvider = diskProvider; _logger = logger; } diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateFilenameInfo.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateFilenameInfo.cs index f40b6ec6e..28c2c3633 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateFilenameInfo.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateFilenameInfo.cs @@ -11,6 +11,8 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Aggregation.Aggregators { public class AggregateFilenameInfo : IAggregate { + public int Order => 1; + private readonly Logger _logger; private static readonly List> CharsAndSeps = new List> diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateQuality.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateQuality.cs index b2ecf8487..3a9ef0481 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateQuality.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateQuality.cs @@ -4,6 +4,8 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Aggregation.Aggregators { public class AggregateQuality : IAggregate { + public int Order => 1; + public LocalTrack Aggregate(LocalTrack localTrack, bool otherFiles) { var quality = localTrack.FileTrackInfo?.Quality; diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateReleaseGroup.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateReleaseGroup.cs index d62fad478..4370b3364 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateReleaseGroup.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/AggregateReleaseGroup.cs @@ -5,6 +5,8 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Aggregation.Aggregators { public class AggregateReleaseGroup : IAggregate { + public int Order => 1; + public LocalTrack Aggregate(LocalTrack localTrack, bool otherFiles) { var releaseGroup = localTrack.DownloadClientAlbumInfo?.ReleaseGroup; diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/IAggregateLocalTrack.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/IAggregateLocalTrack.cs index c9a219b5a..9a26110a2 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/IAggregateLocalTrack.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Aggregation/Aggregators/IAggregateLocalTrack.cs @@ -2,6 +2,7 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Aggregation.Aggregators { public interface IAggregate { + int Order { get; } T Aggregate(T item, bool otherFiles); } }