diff --git a/d2m/converters/edit-to-changes.test.js b/d2m/converters/edit-to-changes.test.js
index d1644fd..9a7460b 100644
--- a/d2m/converters/edit-to-changes.test.js
+++ b/d2m/converters/edit-to-changes.test.js
@@ -60,7 +60,7 @@ test("edit2changes: bot response", async t => {
msgtype: "m.text",
body: "* :ae_botrac4r: @cadence asked ````, I respond: Stop drinking paint. (No)\n\nHit :bn_re: to reroll.",
format: "org.matrix.custom.html",
- formatted_body: '*
@cadence asked
, I respond: Stop drinking paint. (No)
Hit
to reroll.',
+ formatted_body: '*
@cadence asked
, I respond: Stop drinking paint. (No)
Hit
to reroll.',
"m.mentions": {
// Client-Server API spec 11.37.7: Copy Discord's behaviour by not re-notifying anyone that an *edit occurred*
},
@@ -69,7 +69,7 @@ test("edit2changes: bot response", async t => {
msgtype: "m.text",
body: ":ae_botrac4r: @cadence asked ````, I respond: Stop drinking paint. (No)\n\nHit :bn_re: to reroll.",
format: "org.matrix.custom.html",
- formatted_body: '
@cadence asked
, I respond: Stop drinking paint. (No)
Hit
to reroll.',
+ formatted_body: '
@cadence asked
, I respond: Stop drinking paint. (No)
Hit
to reroll.',
"m.mentions": {
// Client-Server API spec 11.37.7: This should contain the mentions for the final version of the event
"user_ids": ["@cadence:cadence.moe"]
diff --git a/d2m/converters/message-to-event.js b/d2m/converters/message-to-event.js
index d9b8940..15eaf34 100644
--- a/d2m/converters/message-to-event.js
+++ b/d2m/converters/message-to-event.js
@@ -156,11 +156,30 @@ async function messageToEvent(message, guild, options = {}, di) {
}
})
+ // Handling emojis that we don't know about. The emoji has to be present in the DB for it to be picked up in the emoji markdown converter.
+ // So we scan the message ahead of time for all its emojis and ensure they are in the DB.
+ const emojiMatches = [...content.matchAll(/<(a?):([^:>]{2,20}):([0-9]+)>/g)]
+ const emojiDownloads = []
+ for (const match of emojiMatches) {
+ const id = match[3]
+ const name = match[2]
+ const animated = +!!match[1]
+ const row = select("emoji", "id", "WHERE id = ?").pluck().get(id)
+ if (!row) {
+ // The custom emoji is not registered. We will register it and then add it.
+ emojiDownloads.push(
+ file.uploadDiscordFileToMxc(file.emoji(id, animated)).then(mxc => {
+ db.prepare("INSERT OR IGNORE INTO emoji (id, name, animated, mxc_url) VALUES (?, ?, ?, ?)").run(id, name, animated, mxc)
+ })
+ )
+ }
+ }
+ await Promise.all(emojiDownloads)
+
let html = markdown.toHTML(content, {
discordCallback: getDiscordParseCallbacks(message, true)
}, null, null)
- // TODO: add a string return type to my discord-markdown library
let body = markdown.toHTML(content, {
discordCallback: getDiscordParseCallbacks(message, false),
discordOnly: true,
@@ -209,26 +228,6 @@ async function messageToEvent(message, guild, options = {}, di) {
}
}
- // Handling emojis that we don't know about. The emoji has to be present in the DB for it to be picked up in the emoji markdown converter.
- // So we scan the message ahead of time for all its emojis and ensure they are in the DB.
- const emojiMatches = [...content.matchAll(/<(a?):([^:>]{2,20}):([0-9]+)>/g)]
- const emojiDownloads = []
- for (const match of emojiMatches) {
- const id = match[3]
- const name = match[2]
- const animated = +!!match[1]
- const row = select("emoji", "id", "WHERE id = ?").pluck().get(id)
- if (!row) {
- // The custom emoji is not registered. We will register it and then add it.
- emojiDownloads.push(
- file.uploadDiscordFileToMxc(file.emoji(id, animated)).then(mxc => {
- db.prepare("INSERT OR IGNORE INTO emoji (id, name, animated, mxc_url) VALUES (?, ?, ?, ?)").run(id, name, animated, mxc)
- })
- )
- }
- }
- await Promise.all(emojiDownloads)
-
// Star * prefix for fallback edits
if (options.includeEditFallbackStar) {
body = "* " + body
diff --git a/db/ooye-test-data.sql b/db/ooye-test-data.sql
index 9ea11de..68c6d00 100644
--- a/db/ooye-test-data.sql
+++ b/db/ooye-test-data.sql
@@ -72,7 +72,9 @@ INSERT INTO file (discord_url, mxc_url) VALUES
INSERT INTO emoji (id, name, animated, mxc_url) VALUES
('230201364309868544', 'hippo', 0, 'mxc://cadence.moe/qWmbXeRspZRLPcjseyLmeyXC'),
-('393635038903926784', 'hipposcope', 1, 'mxc://cadence.moe/WbYqNlACRuicynBfdnPYtmvc');
+('393635038903926784', 'hipposcope', 1, 'mxc://cadence.moe/WbYqNlACRuicynBfdnPYtmvc'),
+('362741439211503616', 'bn_re', 0, 'mxc://cadence.moe/OIpqpfxTnHKokcsYqDusxkBT'),
+('551636841284108289', 'ae_botrac4r', 0, 'mxc://cadence.moe/skqfuItqxNmBYekzmVKyoLzs');
INSERT INTO member_cache (room_id, mxid, displayname, avatar_url) VALUES
('!kLRqKKUQXcibIMtOpl:cadence.moe', '@cadence:cadence.moe', 'cadence [they]', NULL),