parent
32f77cfbd7
commit
767db567ad
File diff suppressed because it is too large
Load Diff
@ -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() |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue