Add Indonesia and slang keywords to each emoji
This commit is contained in:
26
script.js
26
script.js
@@ -20,6 +20,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
let currentEmojiList = [];
|
||||
let currentPage = 1;
|
||||
const EMOJIS_PER_PAGE = 100;
|
||||
let indonesianKeywords = {};
|
||||
|
||||
// --- Dark Mode Logic ---
|
||||
const applyTheme = (isDark) => {
|
||||
@@ -45,6 +46,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
'array.json',
|
||||
'list.json',
|
||||
'categories.json',
|
||||
'indonesian-keywords.json',
|
||||
// Add other files if they should be loaded, keeping the initial set small
|
||||
].map(file => `src/${file}`);
|
||||
|
||||
@@ -70,10 +72,22 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
.catch(error => { console.error(error); return []; })
|
||||
))
|
||||
.then(allData => {
|
||||
// Extract Indonesian keywords from the last file
|
||||
const keywordsData = allData[allData.length - 1];
|
||||
if (keywordsData && keywordsData.keywords) {
|
||||
indonesianKeywords = keywordsData.keywords;
|
||||
}
|
||||
|
||||
// Process emoji data from other files
|
||||
const emojiData = allData.slice(0, -1);
|
||||
const uniqueEmojis = new Map();
|
||||
const parsedEmojis = allData.flat().flatMap(parseEmojiData);
|
||||
const parsedEmojis = emojiData.flat().flatMap(parseEmojiData);
|
||||
parsedEmojis.forEach(emoji => {
|
||||
if (emoji && emoji.name && !uniqueEmojis.has(emoji.name)) {
|
||||
// Add Indonesian keywords to emoji object
|
||||
if (indonesianKeywords[emoji.emoji]) {
|
||||
emoji.indonesianKeywords = indonesianKeywords[emoji.emoji];
|
||||
}
|
||||
uniqueEmojis.set(emoji.name, emoji);
|
||||
}
|
||||
});
|
||||
@@ -137,7 +151,12 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const keywordMatch = emoji.keywords && Array.isArray(emoji.keywords) && emoji.keywords.some(k => k.toLowerCase().includes(searchTerm));
|
||||
const categoryMatch = emoji.category && emoji.category.toLowerCase().includes(searchTerm);
|
||||
const subcategoryMatch = emoji.subcategory && emoji.subcategory.toLowerCase().includes(searchTerm);
|
||||
return nameMatch || keywordMatch || categoryMatch || subcategoryMatch;
|
||||
|
||||
// Indonesian keywords search
|
||||
const indonesianMatch = emoji.indonesianKeywords && Array.isArray(emoji.indonesianKeywords) &&
|
||||
emoji.indonesianKeywords.some(k => k.toLowerCase().includes(searchTerm));
|
||||
|
||||
return nameMatch || keywordMatch || categoryMatch || subcategoryMatch || indonesianMatch;
|
||||
});
|
||||
displayPage(1);
|
||||
});
|
||||
@@ -153,6 +172,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
if (emoji.keywords && Array.isArray(emoji.keywords)) {
|
||||
emoji.keywords.forEach(k => tags.add(k));
|
||||
}
|
||||
if (emoji.indonesianKeywords && Array.isArray(emoji.indonesianKeywords)) {
|
||||
emoji.indonesianKeywords.forEach(k => tags.add(k));
|
||||
}
|
||||
if (emoji.category) tags.add(emoji.category);
|
||||
if (emoji.subcategory) tags.add(emoji.subcategory);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user