Don't post new embeds for old messages

This commit is contained in:
Cadence Ember
2025-11-10 00:45:56 +13:00
parent b4dd66fbec
commit cba79658fa
3 changed files with 44 additions and 0 deletions

View File

@@ -123,6 +123,11 @@ async function editToChanges(message, guild, api) {
eventsToRedact = eventsToRedact.filter(e => e.old.event_subtype === "m.notice")
unchangedEvents.push(...eventsToReplace.filter(e => e.old.event_subtype !== "m.notice")) // Move them from eventsToReplace to unchangedEvents.
eventsToReplace = eventsToReplace.filter(e => e.old.event_subtype === "m.notice")
// Don't post new generated embeds for messages if it's been a while since the message was sent. Detached embeds look weird.
if (message.timestamp && new Date(message.timestamp).getTime() < Date.now() - 120 * 1000) { // older than 2 minutes ago
eventsToSend = eventsToSend.filter(e => e.msgtype !== "m.notice")
}
}
// Now, everything in eventsToSend and eventsToRedact is a real change, but everything in eventsToReplace might not have actually changed!

View File

@@ -360,3 +360,12 @@ test("edit2changes: generated embed on a reply", async t => {
t.equal(senderMxid, "@_ooye_cadence:cadence.moe")
t.equal(called, 1)
})
test("edit2changes: don't generate embed if it's been too long since the message", async t => {
const {senderMxid, eventsToRedact, eventsToReplace, eventsToSend, promotions} = await editToChanges(data.message_update.embed_generated_social_media_image_for_matrix_user, data.guild.general)
t.deepEqual(eventsToRedact, [])
t.deepEqual(eventsToReplace, [])
t.deepEqual(eventsToSend, [])
t.deepEqual(promotions, [])
t.equal(senderMxid, null)
})