Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F112837
emoji_merger.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
emoji_merger.js
View Options
/*
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 Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 24, 1:30 AM (21 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39244
Default Alt Text
emoji_merger.js (1 KB)
Attached To
Mode
rPUFE pleroma-fe-upstream
Attached
Detach File
Event Timeline
Log In to Comment