mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-04 20:28:23 +02:00
47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
function parseEmojis(raw) {
|
|
try {
|
|
var data = JSON.parse(String(raw || ""))
|
|
return Array.isArray(data) ? data : []
|
|
} catch (e) {
|
|
return []
|
|
}
|
|
}
|
|
|
|
function normalizedQuery(query) {
|
|
return String(query || "").trim().toLowerCase()
|
|
}
|
|
|
|
function keywordText(item) {
|
|
return String((item && item.k) || "").toLowerCase()
|
|
}
|
|
|
|
function filterEmojis(emojis, query, limit) {
|
|
var values = Array.isArray(emojis) ? emojis : []
|
|
var needle = normalizedQuery(query)
|
|
var max = limit === undefined || limit === null ? 1000 : Number(limit)
|
|
if (isNaN(max)) max = 1000
|
|
max = Math.max(0, max)
|
|
if (max === 0) return []
|
|
|
|
var out = []
|
|
|
|
for (var i = 0; i < values.length; i++) {
|
|
var item = values[i]
|
|
if (!item || !item.e) continue
|
|
if (!needle || keywordText(item).indexOf(needle) >= 0) {
|
|
out.push(item)
|
|
if (out.length >= max) break
|
|
}
|
|
}
|
|
|
|
return out
|
|
}
|
|
|
|
if (typeof module !== "undefined") {
|
|
module.exports = {
|
|
parseEmojis: parseEmojis,
|
|
normalizedQuery: normalizedQuery,
|
|
filterEmojis: filterEmojis
|
|
}
|
|
}
|