forked from AkkomaGang/akkoma-fe
update emoji.json, add script that merges new emoji from another source
This commit is contained in:
parent
32f77cfbd7
commit
767db567ad
3 changed files with 5533 additions and 968 deletions
2396
static/emoji.json
2396
static/emoji.json
File diff suppressed because it is too large
Load diff
67
tools/emoji_merger.js
Normal file
67
tools/emoji_merger.js
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
Emoji merger script, quick hack of a tool to:
|
||||||
|
- update some missing emoji from an external source
|
||||||
|
- sort the emoji
|
||||||
|
- remove all multipart emoji (reactions don't allow them)
|
||||||
|
|
||||||
|
Merges emoji from here: https://gist.github.com/oliveratgithub/0bf11a9aff0d6da7b46f1490f86a71eb
|
||||||
|
to the simpler format we're using.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Existing emojis we have
|
||||||
|
const oldEmojiFilename = '../static/emoji.json'
|
||||||
|
|
||||||
|
// The file downloaded from https://gist.github.com/oliveratgithub/0bf11a9aff0d6da7b46f1490f86a71eb
|
||||||
|
const newEmojiFilename = 'emojis.json'
|
||||||
|
|
||||||
|
// Output, replace the static/emoji.json with this file if it looks correct
|
||||||
|
const outputFilename = 'output.json'
|
||||||
|
|
||||||
|
const run = () => {
|
||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
|
let newEmojisObject = {}
|
||||||
|
let emojisObject = {}
|
||||||
|
|
||||||
|
let data = fs.readFileSync(newEmojiFilename, 'utf8')
|
||||||
|
|
||||||
|
// First filter out anything that's more than one codepoint
|
||||||
|
const newEmojis = JSON.parse(data).emojis.filter(e => e.emoji.length <= 2)
|
||||||
|
|
||||||
|
// Create a table with format { shortname: emoji }, remove the :
|
||||||
|
newEmojis.forEach(e => {
|
||||||
|
const name = e.shortname.slice(1, e.shortname.length - 1).toLowerCase()
|
||||||
|
if (name.length > 0) {
|
||||||
|
newEmojisObject[name] = e.emoji
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
data = fs.readFileSync(oldEmojiFilename, 'utf8')
|
||||||
|
|
||||||
|
emojisObject = JSON.parse(data)
|
||||||
|
|
||||||
|
// Get rid of longer emojis that don't play nice with reactions
|
||||||
|
Object.keys(emojisObject).forEach(e => {
|
||||||
|
if (emojisObject[e].length > 2) emojisObject[e] = undefined
|
||||||
|
})
|
||||||
|
|
||||||
|
// Add new emojis from the new tables to the old table
|
||||||
|
Object.keys(newEmojisObject).forEach(e => {
|
||||||
|
if (!emojisObject[e] && newEmojisObject[e].length <= 2) {
|
||||||
|
emojisObject[e] = newEmojisObject[e]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Sort by key
|
||||||
|
const sorted = Object.keys(emojisObject).sort().reduce((acc, key) => {
|
||||||
|
if (key.length === 0) return acc
|
||||||
|
acc[key] = emojisObject[key]
|
||||||
|
return acc
|
||||||
|
}, {})
|
||||||
|
|
||||||
|
fs.writeFile(outputFilename, JSON.stringify(sorted, null, 2), 'utf8', (err) => {
|
||||||
|
if (err) console.log('Error writing file', err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
run()
|
4036
tools/emojis.json
Normal file
4036
tools/emojis.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue