1
0
Fork 0

write editMessage action, connected to dispatcher

This commit is contained in:
Cadence Ember 2023-08-17 16:41:28 +12:00
parent 2973170e87
commit 040a2d253f
7 changed files with 95 additions and 33 deletions

View file

@ -82,7 +82,7 @@ async function editToChanges(message, guild, api) {
eventsToRedact = oldEventRows
// Now, everything in eventsToSend and eventsToRedact is a real change, but everything in eventsToReplace might not have actually changed!
// (Consider a MESSAGE_UPDATE for a text+image message - Discord does not allow the image to be changed, but the text might have been.)
// (Example: a MESSAGE_UPDATE for a text+image message - Discord does not allow the image to be changed, but the text might have been.)
// So we'll remove entries from eventsToReplace that *definitely* cannot have changed. (This is category 4 mentioned above.) Everything remaining *may* have changed.
eventsToReplace = eventsToReplace.filter(ev => {
// Discord does not allow files, images, attachments, or videos to be edited.
@ -99,9 +99,9 @@ async function editToChanges(message, guild, api) {
// Removing unnecessary properties before returning
eventsToRedact = eventsToRedact.map(e => e.event_id)
eventsToReplace = eventsToReplace.map(e => ({oldID: e.old.event_id, new: eventToReplacementEvent(e.old.event_id, e.newFallbackContent, e.newInnerContent)}))
eventsToReplace = eventsToReplace.map(e => ({oldID: e.old.event_id, newContent: makeReplacementEventContent(e.old.event_id, e.newFallbackContent, e.newInnerContent)}))
return {eventsToReplace, eventsToRedact, eventsToSend, senderMxid}
return {roomID, eventsToReplace, eventsToRedact, eventsToSend, senderMxid}
}
/**
@ -111,7 +111,7 @@ async function editToChanges(message, guild, api) {
* @param {T} newInnerContent
* @returns {import("../../types").Event.ReplacementContent<T>} content
*/
function eventToReplacementEvent(oldID, newFallbackContent, newInnerContent) {
function makeReplacementEventContent(oldID, newFallbackContent, newInnerContent) {
const content = {
...newFallbackContent,
"m.mentions": {},
@ -130,4 +130,4 @@ function eventToReplacementEvent(oldID, newFallbackContent, newInnerContent) {
}
module.exports.editToChanges = editToChanges
module.exports.eventToReplacementEvent = eventToReplacementEvent
module.exports.makeReplacementEventContent = makeReplacementEventContent

View file

@ -29,7 +29,7 @@ test("edit2changes: bot response", async t => {
t.deepEqual(eventsToSend, [])
t.deepEqual(eventsToReplace, [{
oldID: "$fdD9OZ55xg3EAsfvLZza5tMhtjUO91Wg3Otuo96TplY",
new: {
newContent: {
$type: "m.room.message",
msgtype: "m.text",
body: "* :ae_botrac4r: @cadence asked ``­``, I respond: Stop drinking paint. (No)\n\nHit :bn_re: to reroll.",
@ -82,7 +82,7 @@ test("edit2changes: edit of reply to skull webp attachment with content", async
t.deepEqual(eventsToSend, [])
t.deepEqual(eventsToReplace, [{
oldID: "$vgTKOR5ZTYNMKaS7XvgEIDaOWZtVCEyzLLi5Pc5Gz4M",
new: {
newContent: {
$type: "m.room.message",
msgtype: "m.text",
body: "> Extremity: Image\n\n* Edit",