diff --git a/UmlautAdaptarr/Models/SearchItem.cs b/UmlautAdaptarr/Models/SearchItem.cs index 230f9fb..e54bbd9 100644 --- a/UmlautAdaptarr/Models/SearchItem.cs +++ b/UmlautAdaptarr/Models/SearchItem.cs @@ -103,14 +103,17 @@ namespace UmlautAdaptarr.Models TitleSearchVariations = GenerateVariations($"{expectedAuthor} {expectedTitle}", mediaType).ToArray(); AuthorMatchVariations = GenerateVariations(expectedAuthor, mediaType).ToArray(); - if (mediaType == "book" && (expectedAuthor?.Contains(' ') ?? false)) + if (mediaType == "book") { - var nameParts = expectedAuthor.Split(' ', StringSplitOptions.RemoveEmptyEntries); - var lastName = nameParts.Last(); - var firstNames = nameParts.Take(nameParts.Length - 1); + if (expectedAuthor?.Contains(' ') ?? false) + { + var nameParts = expectedAuthor.Split(' ', StringSplitOptions.RemoveEmptyEntries); + var lastName = nameParts.Last(); + var firstNames = nameParts.Take(nameParts.Length - 1); - var alternativeExpectedAuthor = $"{lastName}, {string.Join(" ", firstNames)}"; - AuthorMatchVariations = [.. AuthorMatchVariations, .. GenerateVariations(alternativeExpectedAuthor, mediaType)]; + var alternativeExpectedAuthor = $"{lastName}, {string.Join(" ", firstNames)}"; + AuthorMatchVariations = [.. AuthorMatchVariations, .. GenerateVariations(alternativeExpectedAuthor, mediaType)]; + } } } @@ -135,6 +138,11 @@ namespace UmlautAdaptarr.Models cleanTitle.RemoveGermanUmlautDots() }; + if (mediaType == "book" || mediaType == "audio") + { + baseVariations.Add(cleanTitle.RemoveGermanUmlauts()); + } + // TODO: determine if this is really needed // Additional variations to accommodate titles with "-" if (cleanTitle.Contains('-')) diff --git a/UmlautAdaptarr/Utilities/Extensions.cs b/UmlautAdaptarr/Utilities/Extensions.cs index 7c25732..801fa3e 100644 --- a/UmlautAdaptarr/Utilities/Extensions.cs +++ b/UmlautAdaptarr/Utilities/Extensions.cs @@ -132,6 +132,18 @@ namespace UmlautAdaptarr.Utilities .Replace("ß", "ss"); } + public static string RemoveGermanUmlauts(this string text) + { + return text + .Replace("ö", "") + .Replace("ü", "") + .Replace("ä", "") + .Replace("Ö", "") + .Replace("Ü", "") + .Replace("Ä", "") + .Replace("ß", ""); + } + public static string RemoveExtraWhitespaces(this string text) { return MultipleWhitespaceRegex().Replace(text, " ");