From faabb7ec4a2fbd59d817c55e1aa2ad16702e032a Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 4 Apr 2025 18:30:14 +0200 Subject: [PATCH] Added an option to merge artists without MBIDs to those with one, fixes #642 --- approot/admin-scansettings.xml | 11 + approot/messages.xml | 2 + approot/messages_fr.xml | 2 + approot/messages_it.xml | 2 + approot/messages_pl.xml | 2 + src/libs/core/include/core/TaggedType.hpp | 3 + src/libs/database/impl/Artist.cpp | 59 +++-- src/libs/database/impl/ArtistInfo.cpp | 41 +++- src/libs/database/impl/Migration.cpp | 22 +- src/libs/database/impl/ScanSettings.cpp | 9 + src/libs/database/impl/Session.cpp | 6 +- src/libs/database/impl/TrackArtistLink.cpp | 75 +++++- src/libs/database/include/database/Artist.hpp | 4 +- .../database/include/database/ArtistInfo.hpp | 19 ++ .../include/database/ScanSettings.hpp | 6 +- .../include/database/TrackArtistLink.hpp | 29 ++- src/libs/database/test/ArtistInfo.cpp | 99 ++++++++ src/libs/database/test/CMakeLists.txt | 1 + src/libs/database/test/Migration.cpp | 2 + src/libs/database/test/TrackArtistLink.cpp | 186 ++++++++++++++ src/libs/services/scanner/CMakeLists.txt | 2 + .../services/scanner/impl/ScannerService.cpp | 6 +- .../services/scanner/impl/ScannerService.hpp | 3 + .../services/scanner/impl/ScannerSettings.hpp | 3 +- .../scanner/impl/helpers/ArtistHelpers.cpp | 151 ++++++++++++ .../scanner/impl/helpers/ArtistHelpers.hpp | 38 +++ .../impl/scanners/ArtistInfoFileScanner.cpp | 35 +-- .../impl/scanners/ArtistInfoFileScanner.hpp | 5 +- .../impl/scanners/AudioFileScanOperation.cpp | 129 ++-------- .../steps/ScanStepArtistReconciliation.cpp | 228 ++++++++++++++++++ .../steps/ScanStepArtistReconciliation.hpp | 41 ++++ .../scanner/impl/steps/ScanStepBase.hpp | 3 +- .../include/services/scanner/ScannerStats.hpp | 1 + src/lms/ui/admin/ScanSettingsView.cpp | 24 +- src/lms/ui/admin/ScannerController.cpp | 5 + 35 files changed, 1080 insertions(+), 174 deletions(-) create mode 100644 src/libs/database/test/TrackArtistLink.cpp create mode 100644 src/libs/services/scanner/impl/helpers/ArtistHelpers.cpp create mode 100644 src/libs/services/scanner/impl/helpers/ArtistHelpers.hpp create mode 100644 src/libs/services/scanner/impl/steps/ScanStepArtistReconciliation.cpp create mode 100644 src/libs/services/scanner/impl/steps/ScanStepArtistReconciliation.hpp diff --git a/approot/admin-scansettings.xml b/approot/admin-scansettings.xml index 71339c39..7ebfcee6 100644 --- a/approot/admin-scansettings.xml +++ b/approot/admin-scansettings.xml @@ -58,6 +58,17 @@ +
+
+ ${allow-mbid-artist-merge class="form-check-input"} + +
+ ${allow-mbid-artist-merge-info} +
+
+