From 2a66076d31dc2ad9004255b66a7a7b3c7ad82594 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sat, 7 Sep 2024 18:37:37 +0900 Subject: [PATCH] fix(synced-lyric): optimize logic --- .../synced-lyrics/renderer/lyrics/fetch.ts | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts b/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts index 657321ac..97ece781 100644 --- a/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts +++ b/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts @@ -132,23 +132,12 @@ export const getLyricsList = async ( const artists = artist.split(/[&,]/g).map((i) => i.trim()); const itemArtists = artistName.split(/[&,]/g).map((i) => i.trim()); - const permutations = []; - for (const artistA of artists) { - for (const artistB of itemArtists) { - permutations.push([artistA.toLowerCase(), artistB.toLowerCase()]); - } - } - - for (const artistA of itemArtists) { - for (const artistB of artists) { - permutations.push([artistA.toLowerCase(), artistB.toLowerCase()]); - } - } + const permutations = artists.flatMap((artistA) => + itemArtists.map((artistB) => [artistA.toLowerCase(), artistB.toLowerCase()]) + ); const ratio = Math.max(...permutations.map(([x, y]) => jaroWinkler(x, y))); - - if (ratio <= 0.9) continue; - filteredResults.push(item); + if (ratio > 0.9) filteredResults.push(item); } const duration = songData.songDuration;