From 614906287adcf8b0b082b048e6bfa3ae41e252c2 Mon Sep 17 00:00:00 2001 From: pcjones Date: Mon, 12 Feb 2024 03:46:06 +0100 Subject: [PATCH] Intermediate commit --- UmlautAdaptarr/Models/SearchItem.cs | 2 +- UmlautAdaptarr/Services/CacheService.cs | 7 +++---- UmlautAdaptarr/Services/TitleMatchingService.cs | 2 +- UmlautAdaptarr/Utilities/Extensions.cs | 5 +++++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/UmlautAdaptarr/Models/SearchItem.cs b/UmlautAdaptarr/Models/SearchItem.cs index 9acca3b..7205d21 100644 --- a/UmlautAdaptarr/Models/SearchItem.cs +++ b/UmlautAdaptarr/Models/SearchItem.cs @@ -47,7 +47,7 @@ namespace UmlautAdaptarr.Models { return []; } - var cleanTitle = germanTitle.RemoveAccentButKeepGermanUmlauts(); + var cleanTitle = germanTitle.RemoveAccentButKeepGermanUmlauts().GetCleanTitle(); // Start with base variations including handling umlauts var baseVariations = new List diff --git a/UmlautAdaptarr/Services/CacheService.cs b/UmlautAdaptarr/Services/CacheService.cs index 9344c3d..b75de67 100644 --- a/UmlautAdaptarr/Services/CacheService.cs +++ b/UmlautAdaptarr/Services/CacheService.cs @@ -13,14 +13,13 @@ namespace UmlautAdaptarr.Services { var prefix = item.MediaType; var normalizedTitle = item.Title.RemoveAccentButKeepGermanUmlauts().ToLower(); - // TODO maybe we need to also add the media type (movie/book/show etc) cache.Set($"{prefix}_extid_{item.ExternalId}", item); cache.Set($"{prefix}_title_{normalizedTitle}", item); - foreach (var variation in item.TitleSearchVariations) + foreach (var variation in item.TitleMatchVariations) { - var normalizedVariation = item.Title.RemoveAccentButKeepGermanUmlauts().ToLower(); + var normalizedVariation = variation.RemoveAccentButKeepGermanUmlauts().ToLower(); var cacheKey = $"{prefix}_var_{normalizedVariation}"; cache.Set(cacheKey, item); @@ -28,7 +27,7 @@ namespace UmlautAdaptarr.Services var indexPrefix = normalizedVariation[..Math.Min(VARIATION_LOOKUP_CACHE_LENGTH, variation.Length)].ToLower(); if (!VariationIndex.ContainsKey(indexPrefix)) { - VariationIndex[indexPrefix] = new HashSet(); + VariationIndex[indexPrefix] = []; } VariationIndex[indexPrefix].Add(cacheKey); } diff --git a/UmlautAdaptarr/Services/TitleMatchingService.cs b/UmlautAdaptarr/Services/TitleMatchingService.cs index 59e10c1..60fb728 100644 --- a/UmlautAdaptarr/Services/TitleMatchingService.cs +++ b/UmlautAdaptarr/Services/TitleMatchingService.cs @@ -32,7 +32,7 @@ namespace UmlautAdaptarr.Services } // Use CacheService to find a matching SearchItem by title - var searchItem = cacheService.SearchItemByTitle(mediaType, originalTitle); + var searchItem = cacheService.SearchItemByTitle(mediaType, normalizedOriginalTitle); if (searchItem != null) { // If a SearchItem is found, use its ExpectedTitle and titleMatchVariations for renaming diff --git a/UmlautAdaptarr/Utilities/Extensions.cs b/UmlautAdaptarr/Utilities/Extensions.cs index 9c6d05b..1617848 100644 --- a/UmlautAdaptarr/Utilities/Extensions.cs +++ b/UmlautAdaptarr/Utilities/Extensions.cs @@ -46,6 +46,11 @@ namespace UmlautAdaptarr.Utilities return stringBuilder.ToString().Normalize(NormalizationForm.FormC); } + public static string GetCleanTitle(this string text) + { + return text.Replace("(", "").Replace(")", "").Replace("?","").Replace(":", ""); + } + public static string ReplaceGermanUmlautsWithLatinEquivalents(this string text) { return text