begin converting discord attachments and stickers
This commit is contained in:
		
							parent
							
								
									38d7db5071
								
							
						
					
					
						commit
						e1d7ced87d
					
				
					 6 changed files with 194 additions and 33 deletions
				
			
		| 
						 | 
				
			
			@ -19,16 +19,31 @@ const createRoom = sync.require("../actions/create-room")
 | 
			
		|||
async function sendMessage(message) {
 | 
			
		||||
	assert.ok(message.member)
 | 
			
		||||
 | 
			
		||||
	const event = messageToEvent.messageToEvent(message)
 | 
			
		||||
	const roomID = await createRoom.ensureRoom(message.channel_id)
 | 
			
		||||
 | 
			
		||||
	let senderMxid = null
 | 
			
		||||
	if (!message.webhook_id) {
 | 
			
		||||
		senderMxid = await registerUser.ensureSimJoined(message.author, roomID)
 | 
			
		||||
		await registerUser.syncUser(message.author, message.member, message.guild_id, roomID)
 | 
			
		||||
	}
 | 
			
		||||
	const eventID = await api.sendEvent(roomID, "m.room.message", event, senderMxid)
 | 
			
		||||
	db.prepare("INSERT INTO event_message (event_id, message_id, part) VALUES (?, ?, ?)").run(eventID, message.id, 0) // 0 is primary, 1 is supporting
 | 
			
		||||
	return eventID
 | 
			
		||||
 | 
			
		||||
	const events = await messageToEvent.messageToEvent(message)
 | 
			
		||||
	const eventIDs = []
 | 
			
		||||
	let eventPart = 0 // 0 is primary, 1 is supporting
 | 
			
		||||
	for (const event of events) {
 | 
			
		||||
		const eventType = event.$type
 | 
			
		||||
		/** @type {Pick<typeof event, Exclude<keyof event, "$type">> & { $type?: string }} */
 | 
			
		||||
		const eventWithoutType = {...event}
 | 
			
		||||
		delete eventWithoutType.$type
 | 
			
		||||
 | 
			
		||||
		const eventID = await api.sendEvent(roomID, eventType, event, senderMxid)
 | 
			
		||||
		db.prepare("INSERT INTO event_message (event_id, message_id, part) VALUES (?, ?, ?)").run(eventID, message.id, eventPart)
 | 
			
		||||
 | 
			
		||||
		eventPart = 1 // TODO: use more intelligent algorithm to determine whether primary or supporting
 | 
			
		||||
		eventIDs.push(eventID)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return eventIDs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.sendMessage = sendMessage
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue