diff --git a/API/Controllers/SearchController.cs b/API/Controllers/SearchController.cs
index fbef959..e1a4324 100644
--- a/API/Controllers/SearchController.cs
+++ b/API/Controllers/SearchController.cs
@@ -6,6 +6,7 @@ using Asp.Versioning;
using log4net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
+using Soenneker.Utils.String.NeedlemanWunsch;
using static Microsoft.AspNetCore.Http.StatusCodes;
// ReSharper disable InconsistentNaming
@@ -55,6 +56,27 @@ public class SearchController(PgsqlContext context, ILog Log) : Controller
return Ok(retMangas.ToArray());
}
+
+ ///
+ /// Initiate a search for a Manga on a specific Connector
+ ///
+ ///
+ ///
+ /// MangaConnector with ID not found
+ /// MangaConnector with ID is disabled
+ /// Error during Database Operation
+ [HttpGet("Local/{Query}")]
+ [ProducesResponseType(Status200OK, "application/json")]
+ [ProducesResponseType(Status404NotFound)]
+ [ProducesResponseType(Status406NotAcceptable)]
+ [ProducesResponseType(Status500InternalServerError, "text/plain")]
+ public IActionResult SearchMangaLocally(string Query)
+ {
+ Dictionary distance = context.Mangas
+ .ToArray()
+ .ToDictionary(m => m, m => NeedlemanWunschStringUtil.CalculateSimilarityPercentage(Query, m.Name));
+ return Ok(distance.Where(kv => kv.Value > 50).ToArray());
+ }
///
/// Returns Manga from MangaConnector associated with URL