aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-20 03:32:18 -0800
committerFuwn <[email protected]>2023-12-20 03:32:18 -0800
commite0d7a447b3ee898bf015353b8053a1a833c1a377 (patch)
treef203e35de595991c3c1396a4d6bb54750d3503d2 /src/lib
parentfeat(airing): normalise part (diff)
downloaddue.moe-e0d7a447b3ee898bf015353b8053a1a833c1a377.tar.xz
due.moe-e0d7a447b3ee898bf015353b8053a1a833c1a377.zip
feat(airing): strengthen media match
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Media/Anime/airing.ts7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lib/Media/Anime/airing.ts b/src/lib/Media/Anime/airing.ts
index a88deed5..8e99d76b 100644
--- a/src/lib/Media/Anime/airing.ts
+++ b/src/lib/Media/Anime/airing.ts
@@ -78,13 +78,12 @@ export const findClosestMedia = (media: Media[], matchFor: string) => {
let bestFitMedia: Media | null = null;
let smallestDistance = Infinity;
- const normalizedSingleTitle = normalizeTitle(matchFor);
-
media.forEach((m) => {
[m.title.romaji, m.title.english, ...m.synonyms].filter(Boolean).forEach((title) => {
- const distance = levenshtein.get(normalizedSingleTitle, normalizeTitle(title));
+ const normalizedItemTitle = normalizeTitle(title);
+ const distance = levenshtein.get(normalizeTitle(matchFor), normalizedItemTitle);
- if (distance < smallestDistance && distance < normalizedSingleTitle.length / 2) {
+ if (distance < smallestDistance && distance < Math.max(3, normalizedItemTitle.length * 0.4)) {
smallestDistance = distance;
bestFitMedia = m;
}