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…
Reference in a new issue