From 53f059b7de3a087ceaf12a8946962ac2ea72fa6e Mon Sep 17 00:00:00 2001 From: wea_ondara Date: Sat, 25 Nov 2023 11:21:18 +0100 Subject: [PATCH] frontend: improve title compare for MangaUpdates relation finding --- frontend/package.json | 1 + frontend/src/data/service/MangaUpdatesDataService.ts | 6 +++++- frontend/tsconfig.app.json | 7 ++++++- frontend/tsconfig.vitest.json | 3 --- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 9fe9c58..563b9cf 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -22,6 +22,7 @@ "@popperjs/core": "^2.11.8", "bootstrap": "^5.3.2", "bootstrap-vue-next": "^0.14.10", + "html-entities": "^2.4.0", "idb": "^7.1.1", "pinia": "^2.1.7", "pinia-class-component": "^0.9.4", diff --git a/frontend/src/data/service/MangaUpdatesDataService.ts b/frontend/src/data/service/MangaUpdatesDataService.ts index d4b1505..9f01ca4 100644 --- a/frontend/src/data/service/MangaUpdatesDataService.ts +++ b/frontend/src/data/service/MangaUpdatesDataService.ts @@ -6,6 +6,7 @@ import type {MangaUpdatesSearchResultRecord} from '@/data/models/mangaupdates/Ma import stringSimilarity from 'string-similarity-js'; import {ApiError} from '@/data/api/ApiUtils'; import groupBy from '@/util'; +import {decode} from 'html-entities'; export default class MangaUpdatesDataService { private readonly mangaUpdatesApi = new MangaUpdatesApi(); @@ -59,8 +60,11 @@ export default class MangaUpdatesDataService { } continue; } + const cleaner = (str: string) => { + return str.toLowerCase().replaceAll('"', '\'').replaceAll(' - ', ' ').replaceAll(': ', ' '); + }; matching = results.results - .filter(e => stringSimilarity(title, e.record.title, 2, false) >= 0.95) + .filter(e => stringSimilarity(cleaner(title), cleaner(decode(e.record.title)), 2, false) >= 0.95) .filter(e => allowTypes.has(e.record.type.toLowerCase())) //check if a manga or similar but not novel .filter(e => m.startDate.year - 1 <= parseInt('' + e.record.year) && parseInt('' + e.record.year) <= m.startDate.year + 1); //check year +-1 diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index 9e02112..001a034 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -8,6 +8,11 @@ "baseUrl": ".", "paths": { "@/*": ["./src/*"] - } + }, + "lib": [ + "ES2021", + "DOM", + "DOM.Iterable" + ] } } diff --git a/frontend/tsconfig.vitest.json b/frontend/tsconfig.vitest.json index 9a5368e..7c27b9b 100644 --- a/frontend/tsconfig.vitest.json +++ b/frontend/tsconfig.vitest.json @@ -2,9 +2,6 @@ "extends": "./tsconfig.app.json", "exclude": [], "compilerOptions": { - "experimentalDecorators": true, - "composite": true, - "lib": [], "types": ["node", "jsdom"] } }