1
0
mirror of https://github.com/twitter/twemoji.git synced 2024-06-15 03:35:16 +00:00

🚧 run rename script on new emojis

This commit is contained in:
Brian Hung 2020-11-09 19:20:41 -08:00
parent bdb9710faf
commit d79306bbc0
3 changed files with 42 additions and 0 deletions

View File

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 589 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

42
scripts/rename.js Normal file
View File

@ -0,0 +1,42 @@
const fs = require('fs');
// https://github.com/iamcal/emoji-data
let emojiList = JSON.parse(fs.readFileSync("./scripts/emoji.json"))
// Flatten and append skin variations as a separate emojis to emojiList.
emojiList.filter(e => e.skin_variations)
.forEach(e => emojiList = emojiList.concat(Object.values(e.skin_variations)))
function unifiedToNative(unified) {
const codePoints = unified.split('-').map(u => `0x${u}`);
return String.fromCodePoint.apply(String, codePoints);
}
// Convert unicode to native represetation.
emojiList.forEach(e => e.native = unifiedToNative(e.unified))
// Parse each native representation into a twemoji entity.
const { parse } = require('twemoji-parser');
emojiList.forEach(e => e.entity = parse(e.native)[0])
function getTwemojiUnicode(url) {
return url.match(/([^\/]+)(?=\.\w+$)/)[0]
}
// Get the twemoji unicode representation from entity url.
emojiList.forEach(e => e.twemojiUnicode = getTwemojiUnicode(e.entity.url))
// Calculate the list of emojis where twemoji and unified or non_qualified differ.
let diff = emojiList.filter(e => e.twemojiUnicode !== e.unified.toLowerCase())
.filter(d => d.twemojiUnicode !== "1f441") // BUG: see https://github.com/twitter/twemoji/issues/419
diff.forEach(e => {
try {
fs.renameSync(`./assets/72x72/${e.twemojiUnicode}.png`, `./assets/72x72/${e.unified.toLowerCase()}.png`);
fs.renameSync(`./assets/svg/${e.twemojiUnicode}.svg`, `./assets/svg/${e.unified.toLowerCase()}.svg`);
} catch (error) {
console.log("error:", error);
}
})
// To-do: manually handle 1f441.