write editMessage action, connected to dispatcher
This commit is contained in:
		
							parent
							
								
									2973170e87
								
							
						
					
					
						commit
						040a2d253f
					
				
					 7 changed files with 95 additions and 33 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue