upload spoiler attachments as spoilers
This commit is contained in:
		
							parent
							
								
									6a04f3f798
								
							
						
					
					
						commit
						a1be84cb60
					
				
					 3 changed files with 62 additions and 1 deletions
				
			
		| 
						 | 
					@ -247,8 +247,19 @@ async function messageToEvent(message, guild, options = {}, di) {
 | 
				
			||||||
			: attachment.content_type?.startsWith("text/") ? "📝"
 | 
								: attachment.content_type?.startsWith("text/") ? "📝"
 | 
				
			||||||
			: attachment.content_type?.startsWith("audio/") ? "🎶"
 | 
								: attachment.content_type?.startsWith("audio/") ? "🎶"
 | 
				
			||||||
			: "📄"
 | 
								: "📄"
 | 
				
			||||||
 | 
							// no native media spoilers in Element, so we'll post a link instead, forcing it to not preview using a blockquote
 | 
				
			||||||
 | 
							if (attachment.filename.startsWith("SPOILER_")) {
 | 
				
			||||||
 | 
								return {
 | 
				
			||||||
 | 
									$type: "m.room.message",
 | 
				
			||||||
 | 
									"m.mentions": mentions,
 | 
				
			||||||
 | 
									msgtype: "m.text",
 | 
				
			||||||
 | 
									body: `${emoji} Uploaded SPOILER file: ${attachment.url} (${pb(attachment.size)})`,
 | 
				
			||||||
 | 
									format: "org.matrix.custom.html",
 | 
				
			||||||
 | 
									formatted_body: `<blockquote>${emoji} Uploaded SPOILER file: <span data-mx-spoiler><a href="${attachment.url}">View</a></span> (${pb(attachment.size)})</blockquote>`
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		// for large files, always link them instead of uploading so I don't use up all the space in the content repo
 | 
							// for large files, always link them instead of uploading so I don't use up all the space in the content repo
 | 
				
			||||||
		if (attachment.size > reg.ooye.max_file_size) {
 | 
							else if (attachment.size > reg.ooye.max_file_size) {
 | 
				
			||||||
			return {
 | 
								return {
 | 
				
			||||||
				$type: "m.room.message",
 | 
									$type: "m.room.message",
 | 
				
			||||||
				"m.mentions": mentions,
 | 
									"m.mentions": mentions,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,6 +104,18 @@ test("message2event: attachment with no content", async t => {
 | 
				
			||||||
	}])
 | 
						}])
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test("message2event: spoiler attachment", async t => {
 | 
				
			||||||
 | 
						const events = await messageToEvent(data.message.spoiler_attachment, data.guild.general, {})
 | 
				
			||||||
 | 
						t.deepEqual(events, [{
 | 
				
			||||||
 | 
							$type: "m.room.message",
 | 
				
			||||||
 | 
							"m.mentions": {},
 | 
				
			||||||
 | 
							msgtype: "m.text",
 | 
				
			||||||
 | 
							body: "📄 Uploaded SPOILER file: https://cdn.discordapp.com/attachments/1100319550446252084/1147465564307079258/SPOILER_69-GNDP-CADENCE.nfs.gci (74 KB)",
 | 
				
			||||||
 | 
							format: "org.matrix.custom.html",
 | 
				
			||||||
 | 
							formatted_body: "<blockquote>📄 Uploaded SPOILER file: <span data-mx-spoiler><a href=\"https://cdn.discordapp.com/attachments/1100319550446252084/1147465564307079258/SPOILER_69-GNDP-CADENCE.nfs.gci\">View</a></span> (74 KB)</blockquote>"
 | 
				
			||||||
 | 
						}])
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test("message2event: stickers", async t => {
 | 
					test("message2event: stickers", async t => {
 | 
				
			||||||
	const events = await messageToEvent(data.message.sticker, data.guild.general, {})
 | 
						const events = await messageToEvent(data.message.sticker, data.guild.general, {})
 | 
				
			||||||
	t.deepEqual(events, [{
 | 
						t.deepEqual(events, [{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										38
									
								
								test/data.js
									
										
									
									
									
								
							
							
						
						
									
										38
									
								
								test/data.js
									
										
									
									
									
								
							| 
						 | 
					@ -531,6 +531,44 @@ module.exports = {
 | 
				
			||||||
			flags: 0,
 | 
								flags: 0,
 | 
				
			||||||
			components: []
 | 
								components: []
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							spoiler_attachment: {
 | 
				
			||||||
 | 
								type: 0,
 | 
				
			||||||
 | 
								tts: false,
 | 
				
			||||||
 | 
								timestamp: '2023-09-02T09:38:29.480000+00:00',
 | 
				
			||||||
 | 
								referenced_message: null,
 | 
				
			||||||
 | 
								pinned: false,
 | 
				
			||||||
 | 
								nonce: '1147465562901708800',
 | 
				
			||||||
 | 
								mentions: [],
 | 
				
			||||||
 | 
								mention_roles: [],
 | 
				
			||||||
 | 
								mention_everyone: false,
 | 
				
			||||||
 | 
								id: '1147465564600676383',
 | 
				
			||||||
 | 
								flags: 0,
 | 
				
			||||||
 | 
								embeds: [],
 | 
				
			||||||
 | 
								edited_timestamp: null,
 | 
				
			||||||
 | 
								content: '',
 | 
				
			||||||
 | 
								components: [],
 | 
				
			||||||
 | 
								channel_id: '1100319550446252084',
 | 
				
			||||||
 | 
								author: {
 | 
				
			||||||
 | 
									username: 'cadence.worm',
 | 
				
			||||||
 | 
									public_flags: 0,
 | 
				
			||||||
 | 
									id: '772659086046658620',
 | 
				
			||||||
 | 
									global_name: 'cadence',
 | 
				
			||||||
 | 
									discriminator: '0',
 | 
				
			||||||
 | 
									avatar_decoration_data: null,
 | 
				
			||||||
 | 
									avatar: '4b5c4b28051144e4c111f0113a0f1cf1'
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								attachments: [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										url: 'https://cdn.discordapp.com/attachments/1100319550446252084/1147465564307079258/SPOILER_69-GNDP-CADENCE.nfs.gci',
 | 
				
			||||||
 | 
										size: 73792,
 | 
				
			||||||
 | 
										proxy_url: 'https://media.discordapp.net/attachments/1100319550446252084/1147465564307079258/SPOILER_69-GNDP-CADENCE.nfs.gci',
 | 
				
			||||||
 | 
										id: '1147465564307079258',
 | 
				
			||||||
 | 
										flags: 8,
 | 
				
			||||||
 | 
										filename: 'SPOILER_69-GNDP-CADENCE.nfs.gci'
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								guild_id: '1100319549670301727'
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		skull_webp_attachment_with_content: {
 | 
							skull_webp_attachment_with_content: {
 | 
				
			||||||
			type: 0,
 | 
								type: 0,
 | 
				
			||||||
			tts: false,
 | 
								tts: false,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue