Fix emoji_id references and add tests

This commit is contained in:
Cadence Ember 2023-10-07 20:58:46 +13:00
parent 9fbef15ad1
commit e3b2c844d8
8 changed files with 77 additions and 19 deletions

View file

@ -14,7 +14,7 @@ async function emojiToKey(emoji) {
let key
if (emoji.id) {
// Custom emoji
const mxc = select("emoji", "mxc_url", {emoji_id: emoji.id}).pluck().get(emoji.id)
const mxc = select("emoji", "mxc_url", {emoji_id: emoji.id}).pluck().get()
if (mxc) {
// The custom emoji is registered and we should send it
key = mxc
@ -22,7 +22,7 @@ async function emojiToKey(emoji) {
// The custom emoji is not registered. We will register it and then add it.
assert(emoji.name) // The docs say: "name may be null when custom emoji data is not available, for example, if it was deleted from the guild"
const mxc = await file.uploadDiscordFileToMxc(file.emoji(emoji.id, emoji.animated))
db.prepare("INSERT OR IGNORE INTO emoji (id, name, animated, mxc_url) VALUES (?, ?, ?, ?)").run(emoji.id, emoji.name, +!!emoji.animated, mxc)
db.prepare("INSERT OR IGNORE INTO emoji (emoji_id, name, animated, mxc_url) VALUES (?, ?, ?, ?)").run(emoji.id, emoji.name, +!!emoji.animated, mxc)
key = mxc
// TODO: what happens if the matrix user also tries adding this reaction? the bridge bot isn't able to use that emoji...
}