From 70ae0c931ea45f94c0fa36c997b474b49d14fe88 Mon Sep 17 00:00:00 2001 From: ta264 Date: Mon, 18 Jul 2022 23:33:41 +0100 Subject: [PATCH] New: Make monitoring existing albums on an import list optional (cherry picked from commit b05bd685bc1bbd04d4b25b83a9fdd4ab3c4651ee) --- .../ImportLists/EditImportListModalContent.js | 21 +++++++++++++++++-- .../ImportLists/ImportListResource.cs | 3 +++ .../058_import_list_monitor_existing.cs | 14 +++++++++++++ .../ImportLists/ImportListDefinition.cs | 1 + .../ImportLists/ImportListSyncService.cs | 4 ++-- src/NzbDrone.Core/Localization/Core/en.json | 4 ++++ 6 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 src/NzbDrone.Core/Datastore/Migration/058_import_list_monitor_existing.cs diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js index 99b4509dd..4e6b78022 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js +++ b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js @@ -75,6 +75,7 @@ function EditImportListModalContent(props) { name, enableAutomaticAdd, shouldMonitor, + shouldMonitorExisting, shouldSearch, rootFolderPath, monitorNewItems, @@ -173,12 +174,28 @@ function EditImportListModalContent(props) { - Search for New Items + + {translate('ShouldMonitorExisting')} + + + + + + + + {translate('ShouldSearch')} + diff --git a/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs b/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs index 0912b7e85..6a9401b45 100644 --- a/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs +++ b/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs @@ -7,6 +7,7 @@ namespace Lidarr.Api.V1.ImportLists { public bool EnableAutomaticAdd { get; set; } public ImportListMonitorType ShouldMonitor { get; set; } + public bool ShouldMonitorExisting { get; set; } public bool ShouldSearch { get; set; } public string RootFolderPath { get; set; } public NewItemMonitorTypes MonitorNewItems { get; set; } @@ -29,6 +30,7 @@ namespace Lidarr.Api.V1.ImportLists resource.EnableAutomaticAdd = definition.EnableAutomaticAdd; resource.ShouldMonitor = definition.ShouldMonitor; + resource.ShouldMonitorExisting = definition.ShouldMonitorExisting; resource.ShouldSearch = definition.ShouldSearch; resource.RootFolderPath = definition.RootFolderPath; resource.MonitorNewItems = definition.MonitorNewItems; @@ -51,6 +53,7 @@ namespace Lidarr.Api.V1.ImportLists definition.EnableAutomaticAdd = resource.EnableAutomaticAdd; definition.ShouldMonitor = resource.ShouldMonitor; + definition.ShouldMonitorExisting = resource.ShouldMonitorExisting; definition.ShouldSearch = resource.ShouldSearch; definition.RootFolderPath = resource.RootFolderPath; definition.MonitorNewItems = resource.MonitorNewItems; diff --git a/src/NzbDrone.Core/Datastore/Migration/058_import_list_monitor_existing.cs b/src/NzbDrone.Core/Datastore/Migration/058_import_list_monitor_existing.cs new file mode 100644 index 000000000..f578ab013 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/058_import_list_monitor_existing.cs @@ -0,0 +1,14 @@ +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(58)] + public class ImportListMonitorExisting : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Alter.Table("ImportLists").AddColumn("ShouldMonitorExisting").AsInt32().WithDefaultValue(0); + } + } +} diff --git a/src/NzbDrone.Core/ImportLists/ImportListDefinition.cs b/src/NzbDrone.Core/ImportLists/ImportListDefinition.cs index 61e47f5c8..4a1e8b243 100644 --- a/src/NzbDrone.Core/ImportLists/ImportListDefinition.cs +++ b/src/NzbDrone.Core/ImportLists/ImportListDefinition.cs @@ -7,6 +7,7 @@ namespace NzbDrone.Core.ImportLists { public bool EnableAutomaticAdd { get; set; } public ImportListMonitorType ShouldMonitor { get; set; } + public bool ShouldMonitorExisting { get; set; } public NewItemMonitorTypes MonitorNewItems { get; set; } public bool ShouldSearch { get; set; } public int ProfileId { get; set; } diff --git a/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs b/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs index 07cfa7909..409b9a8db 100644 --- a/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs +++ b/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs @@ -184,7 +184,7 @@ namespace NzbDrone.Core.ImportLists { _logger.Debug("{0} [{1}] Rejected, Album Exists in DB. Ensuring Album and Artist monitored.", report.AlbumMusicBrainzId, report.Album); - if (importList.ShouldMonitor != ImportListMonitorType.None) + if (importList.ShouldMonitorExisting && importList.ShouldMonitor != ImportListMonitorType.None) { if (!existingAlbum.Monitored) { @@ -288,7 +288,7 @@ namespace NzbDrone.Core.ImportLists { _logger.Debug("{0} [{1}] Rejected, artist exists in DB. Ensuring artist monitored", report.ArtistMusicBrainzId, report.Artist); - if (!existingArtist.Monitored) + if (importList.ShouldMonitorExisting && !existingArtist.Monitored) { existingArtist.Monitored = true; _artistService.UpdateArtist(existingArtist); diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index c7f927830..ca43a4485 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -551,6 +551,10 @@ "Settings": "Settings", "ShortDateFormat": "Short Date Format", "ShouldMonitorHelpText": "Monitor artists and albums added from this list", + "ShouldMonitorExisting": "Monitor existing albums", + "ShouldMonitorExistingHelpText": "Automatically monitor albums on this list which are already in Lidarr", + "ShouldSearch": "Search for New Items", + "ShouldSearchHelpText": "Search indexers for newly added items. Use with caution for large lists.", "ShowAlbumCount": "Show Album Count", "ShowBanners": "Show Banners", "ShowBannersHelpText": "Show banners instead of names",