Update tidal/tidal.js
This commit is contained in:
+29
-1
@@ -1,3 +1,22 @@
|
||||
function calculateSimilarity(title, keyword) {
|
||||
const titleLower = title.toLowerCase();
|
||||
const keywordLower = keyword.toLowerCase();
|
||||
|
||||
if (titleLower === keywordLower) return 1000;
|
||||
|
||||
if (titleLower.startsWith(keywordLower)) return 800;
|
||||
|
||||
if (titleLower.includes(keywordLower)) return 600;
|
||||
|
||||
let matches = 0;
|
||||
for (let i = 0; i < Math.min(titleLower.length, keywordLower.length); i++) {
|
||||
if (titleLower[i] === keywordLower[i]) matches++;
|
||||
else break;
|
||||
}
|
||||
|
||||
return matches;
|
||||
}
|
||||
|
||||
async function searchResults(keyword) {
|
||||
const results = [];
|
||||
try {
|
||||
@@ -21,11 +40,20 @@ async function searchResults(keyword) {
|
||||
results.push({
|
||||
title: title,
|
||||
image: imageUrl,
|
||||
href: href
|
||||
href: href,
|
||||
baseTitle: item.title || "Unknown Title",
|
||||
similarity: calculateSimilarity(item.title || "Unknown Title", keyword)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
results.sort((a, b) => b.similarity - a.similarity);
|
||||
|
||||
results.forEach(r => {
|
||||
delete r.baseTitle;
|
||||
delete r.similarity;
|
||||
});
|
||||
|
||||
return JSON.stringify(results);
|
||||
} catch (err) {
|
||||
console.error("Search error:", err);
|
||||
|
||||
Reference in New Issue
Block a user