From 847a9eae933ede16de892c88e49b764f53657419 Mon Sep 17 00:00:00 2001 From: ta264 Date: Tue, 16 Nov 2021 21:06:16 +0000 Subject: [PATCH] New: Improve match by adding small penalty for missing isbn/asin --- .../MediaFiles/BookImport/Identification/Distance.cs | 2 ++ .../BookImport/Identification/DistanceCalculator.cs | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs index d662bb208..0d5c0b7a5 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs @@ -14,7 +14,9 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification { "author", 3.0 }, { "book", 3.0 }, { "isbn", 10.0 }, + { "isbn_missing", 0.1 }, { "asin", 10.0 }, + { "asin_missing", 0.1 }, { "media_count", 1.0 }, { "media_format", 1.0 }, { "year", 1.0 }, diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs index 3585e4e80..cb71fb248 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs @@ -81,6 +81,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification dist.AddBool("isbn", isbn != edition.Isbn13); Logger.Trace("isbn: '{0}' vs '{1}'; {2}", isbn, edition.Isbn13, dist.NormalizedDistance()); } + else if (isbn.IsNullOrWhiteSpace() != edition.Isbn13.IsNullOrWhiteSpace()) + { + dist.AddBool("isbn_missing", true); + Logger.Trace("isbn: '{0}' vs '{1}'; {2}", isbn, edition.Isbn13, dist.NormalizedDistance()); + } var asin = localTracks.MostCommon(x => x.FileTrackInfo.Asin); if (asin.IsNotNullOrWhiteSpace() && edition.Asin.IsNotNullOrWhiteSpace()) @@ -88,6 +93,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification dist.AddBool("asin", asin != edition.Asin); Logger.Trace("asin: '{0}' vs '{1}'; {2}", asin, edition.Asin, dist.NormalizedDistance()); } + else if (asin.IsNullOrWhiteSpace() != edition.Asin.IsNullOrWhiteSpace()) + { + dist.AddBool("asin_missing", true); + Logger.Trace("asin: '{0}' vs '{1}'; {2}", asin, edition.Asin, dist.NormalizedDistance()); + } // Year var localYear = localTracks.MostCommon(x => x.FileTrackInfo.Year);