Improved database schema
- Some queries are faster due to better index ordering - Database is smaller thanks to splitting message_channel table and adding WITHOUT ROWID where helpful
This commit is contained in:
		
							parent
							
								
									21156446ee
								
							
						
					
					
						commit
						fcbb045cbb
					
				
					 11 changed files with 114 additions and 93 deletions
				
			
		| 
						 | 
				
			
			@ -39,6 +39,7 @@ async function sendEvent(event) {
 | 
			
		|||
	//	TODO ...
 | 
			
		||||
	for (const message of messagesToSend) {
 | 
			
		||||
		const messageResponse = await channelWebhook.sendMessageWithWebhook(channelID, message, threadID)
 | 
			
		||||
		db.prepare("REPLACE INTO message_channel (message_id, channel_id) VALUES (?, ?)").run(messageResponse.id, channelID)
 | 
			
		||||
		db.prepare("INSERT INTO event_message (event_id, event_type, event_subtype, message_id, channel_id, part, source) VALUES (?, ?, ?, ?, ?, ?, 0)").run(event.event_id, event.type, event.content.msgtype || null, messageResponse.id, channelID, eventPart) // source 0 = matrix
 | 
			
		||||
 | 
			
		||||
		eventPart = 1 // TODO: use more intelligent algorithm to determine whether primary or supporting?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -188,7 +188,7 @@ async function eventToMessage(event, guild, di) {
 | 
			
		|||
			if (!repliedToEventId) return
 | 
			
		||||
			const repliedToEvent = await di.api.getEvent(event.room_id, repliedToEventId)
 | 
			
		||||
			if (!repliedToEvent) return
 | 
			
		||||
			const row = db.prepare("SELECT channel_id, message_id FROM event_message WHERE event_id = ? ORDER BY part").get(repliedToEventId)
 | 
			
		||||
			const row = db.prepare("SELECT channel_id, message_id FROM event_message INNER JOIN message_channel USING (message_id) WHERE event_id = ? ORDER BY part").get(repliedToEventId)
 | 
			
		||||
			if (row) {
 | 
			
		||||
				replyLine = `<:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/${guild.id}/${row.channel_id}/${row.message_id} `
 | 
			
		||||
			} else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue