From 279e379d77541ec40a9f5197f4716b4502022ce8 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Tue, 10 Feb 2026 16:34:47 +1300 Subject: [PATCH 1/2] The database really works better if you query it --- src/d2m/event-dispatcher.js | 2 +- src/discord/interactions/matrix-info.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/d2m/event-dispatcher.js b/src/d2m/event-dispatcher.js index 3392eb9..2e005ad 100644 --- a/src/d2m/event-dispatcher.js +++ b/src/d2m/event-dispatcher.js @@ -307,7 +307,7 @@ module.exports = { */ async MESSAGE_REACTION_ADD(client, data) { if (data.user_id === client.user.id) return // m2d reactions are added by the discord bot user - do not reflect them back to matrix. - if (data.emoji.name === "❓" && select("event_message", "message_id", {message_id: data.message_id, source: 0})) { + if (data.emoji.name === "❓" && select("event_message", "message_id", {message_id: data.message_id, source: 0, part: 0}).get()) { // source 0 = matrix const guild_id = data.guild_id ?? client.channels.get(data.channel_id)["guild_id"] await Promise.all([ client.snow.channel.deleteReaction(data.channel_id, data.message_id, data.emoji.name).catch(() => {}), diff --git a/src/discord/interactions/matrix-info.js b/src/discord/interactions/matrix-info.js index ca7da5b..79300a3 100644 --- a/src/discord/interactions/matrix-info.js +++ b/src/discord/interactions/matrix-info.js @@ -20,7 +20,7 @@ const webGuild = sync.require("../../web/routes/guild") */ async function _interact({guild_id, data}, {api}) { const message = from("event_message").join("message_room", "message_id").join("historical_channel_room", "historical_room_index") - .select("source", "reference_channel_id", "room_id", "event_id").where({message_id: data.target_id, part: 0}).get() + .select("source", "reference_channel_id", "room_id", "event_id").where({message_id: data.target_id}).and("ORDER BY part").get() if (!message) { return { From 0ed3ef68f17155892ab259415a3a321e492e3237 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Tue, 10 Feb 2026 16:35:03 +1300 Subject: [PATCH 2/2] Fix PluralKit replies --- src/d2m/converters/message-to-event.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/d2m/converters/message-to-event.js b/src/d2m/converters/message-to-event.js index a23d9c9..38d1601 100644 --- a/src/d2m/converters/message-to-event.js +++ b/src/d2m/converters/message-to-event.js @@ -259,6 +259,7 @@ async function pollToEvent(poll) { * @returns {Promise<{$type: string, $sender?: string, [x: string]: any}[]>} */ async function messageToEvent(message, guild, options = {}, di) { + message = {...message} const events = [] /* c8 ignore next 7 */ @@ -325,8 +326,7 @@ async function messageToEvent(message, guild, options = {}, di) { let content = message.content if (content) content = `\n${content}` else if ((message.flags || 0) & DiscordTypes.MessageFlags.Loading) content = " — interaction loading..." - content = `> ↪️ <@${interaction.user.id}> used \`/${interaction.name}\`${content}` - message = {...message, content} // editToChanges reuses the object so we can't mutate it. have to clone it + message.content = `> ↪️ <@${interaction.user.id}> used \`/${interaction.name}\`${content}` } /**