Forwarding text messages
This commit is contained in:
parent
b23b818192
commit
1b539cfa64
4 changed files with 138 additions and 5 deletions
|
@ -555,9 +555,8 @@ async function messageToEvent(message, guild, options = {}, di) {
|
||||||
// Try to merge the forwarded content with the forwarded notice
|
// Try to merge the forwarded content with the forwarded notice
|
||||||
let {body, formatted_body} = forwardedNotice.get()
|
let {body, formatted_body} = forwardedNotice.get()
|
||||||
if (forwardedEvents.length >= 1 && ["m.text", "m.notice"].includes(forwardedEvents[0].msgtype)) { // Try to merge the forwarded content and the forwarded notice
|
if (forwardedEvents.length >= 1 && ["m.text", "m.notice"].includes(forwardedEvents[0].msgtype)) { // Try to merge the forwarded content and the forwarded notice
|
||||||
forwardedNotice.add("\n", "<br>")
|
forwardedEvents[0].body = body + "\n" + forwardedEvents[0].body
|
||||||
forwardedEvents[0].body = body + forwardedEvents[0].body
|
forwardedEvents[0].formatted_body = formatted_body + "<br>" + forwardedEvents[0].formatted_body
|
||||||
forwardedEvents[0].formatted_body = formatted_body + forwardedEvents[0].formatted_body
|
|
||||||
} else {
|
} else {
|
||||||
await addTextEvent(body, formatted_body, "m.notice")
|
await addTextEvent(body, formatted_body, "m.notice")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1043,3 +1043,61 @@ test("message2event: forwarded image", async t => {
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("message2event: constructed forwarded message", async t => {
|
||||||
|
const events = await messageToEvent(data.message.constructed_forwarded_message, {}, {}, {
|
||||||
|
api: {
|
||||||
|
async getJoinedMembers(roomID) {
|
||||||
|
return {
|
||||||
|
joined: {
|
||||||
|
"@_ooye_bot:cadence.moe": {display_name: null, avatar_url: null},
|
||||||
|
"@user:matrix.org": {display_name: null, avatar_url: null}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
t.deepEqual(events, [
|
||||||
|
{
|
||||||
|
$type: "m.room.message",
|
||||||
|
body: "[🔀 Forwarded from #wonderland]"
|
||||||
|
+ "\n» What's cooking, good looking? :hipposcope:",
|
||||||
|
format: "org.matrix.custom.html",
|
||||||
|
formatted_body: `🔀 <em>Forwarded from <a href="https://matrix.to/#/!qzDBLKlildpzrrOnFZ:cadence.moe/$tBIT8mO7XTTCgIINyiAIy6M2MSoPAdJenRl_RLyYuaE?via=cadence.moe&via=matrix.org">wonderland</a></em>`
|
||||||
|
+ `<br><blockquote>What's cooking, good looking? <img data-mx-emoticon height="32" src="mxc://cadence.moe/WbYqNlACRuicynBfdnPYtmvc" title=":hipposcope:" alt=":hipposcope:"></blockquote>`,
|
||||||
|
"m.mentions": {},
|
||||||
|
msgtype: "m.notice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$type: "m.room.message",
|
||||||
|
body: "100km.gif",
|
||||||
|
external_url: "https://bridge.example.org/download/discordcdn/112760669178241024/1296237494987133070/100km.gif",
|
||||||
|
filename: "100km.gif",
|
||||||
|
info: {
|
||||||
|
h: 300,
|
||||||
|
mimetype: "image/gif",
|
||||||
|
size: 2965649,
|
||||||
|
w: 300,
|
||||||
|
},
|
||||||
|
"m.mentions": {},
|
||||||
|
msgtype: "m.image",
|
||||||
|
url: "mxc://cadence.moe/qDAotmebTfEIfsAIVCEZptLh",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$type: "m.room.message",
|
||||||
|
body: "» | ## This man"
|
||||||
|
+ "\n» | "
|
||||||
|
+ "\n» | ## This man is 100 km away from your house"
|
||||||
|
+ "\n» | "
|
||||||
|
+ "\n» | ### Distance away"
|
||||||
|
+ "\n» | 99 km"
|
||||||
|
+ "\n» | "
|
||||||
|
+ "\n» | ### Distance away"
|
||||||
|
+ "\n» | 98 km",
|
||||||
|
format: "org.matrix.custom.html",
|
||||||
|
formatted_body: "<blockquote><blockquote><p><strong>This man</strong></p><p><strong>This man is 100 km away from your house</strong></p><p><strong>Distance away</strong><br>99 km</p><p><strong>Distance away</strong><br>98 km</p></blockquote></blockquote>",
|
||||||
|
"m.mentions": {},
|
||||||
|
msgtype: "m.notice"
|
||||||
|
}
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
74
test/data.js
74
test/data.js
|
@ -2190,6 +2190,80 @@ module.exports = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
constructed_forwarded_message: { type: 0,
|
||||||
|
content: "",
|
||||||
|
mentions: [],
|
||||||
|
mention_roles: [],
|
||||||
|
attachments: [],
|
||||||
|
embeds: [],
|
||||||
|
timestamp: "2024-10-16T22:25:01.973000+00:00",
|
||||||
|
edited_timestamp: null,
|
||||||
|
flags: 16384,
|
||||||
|
components: [],
|
||||||
|
id: "1296237495993892916",
|
||||||
|
channel_id: "112760669178241024",
|
||||||
|
author: {
|
||||||
|
id: "113340068197859328",
|
||||||
|
username: "kumaccino",
|
||||||
|
avatar: "a8829abe66866d7797b36f0bfac01086",
|
||||||
|
discriminator: "0",
|
||||||
|
public_flags: 128,
|
||||||
|
flags: 128,
|
||||||
|
banner: null,
|
||||||
|
accent_color: null,
|
||||||
|
global_name: "kumaccino",
|
||||||
|
avatar_decoration_data: null,
|
||||||
|
banner_color: null,
|
||||||
|
clan: null
|
||||||
|
},
|
||||||
|
pinned: false,
|
||||||
|
mention_everyone: false,
|
||||||
|
tts: false,
|
||||||
|
message_reference: {
|
||||||
|
type: 1,
|
||||||
|
channel_id: "176333891320283136",
|
||||||
|
message_id: "1191567971970191490"
|
||||||
|
},
|
||||||
|
position: 0,
|
||||||
|
message_snapshots: [
|
||||||
|
{
|
||||||
|
message: {
|
||||||
|
type: 0,
|
||||||
|
content: "What's cooking, good looking? <:hipposcope:393635038903926784>",
|
||||||
|
mentions: [],
|
||||||
|
mention_roles: [],
|
||||||
|
attachments: [
|
||||||
|
{
|
||||||
|
id: "1296237494987133070",
|
||||||
|
filename: "100km.gif",
|
||||||
|
size: 2965649,
|
||||||
|
url: "https://cdn.discordapp.com/attachments/112760669178241024/1296237494987133070/100km.gif?ex=67118ebd&is=67103d3d&hm=8ed76d424f92f11366989f2ebc713d4f8206706ef712571e934da45b59944f77&", proxy_url: "https://media.discordapp.net/attachments/112760669178241024/1296237494987133070/100km.gif?ex=67118ebd&is=67103d3d&hm=8ed76d424f92f11366989f2ebc713d4f8206706ef712571e934da45b59944f77&", width: 300,
|
||||||
|
height: 300,
|
||||||
|
content_type: "image/gif"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
embeds: [{
|
||||||
|
type: "rich",
|
||||||
|
title: "This man is 100 km away from your house",
|
||||||
|
author: {
|
||||||
|
name: "This man"
|
||||||
|
},
|
||||||
|
fields: [{
|
||||||
|
name: "Distance away",
|
||||||
|
value: "99 km"
|
||||||
|
}, {
|
||||||
|
name: "Distance away",
|
||||||
|
value: "98 km"
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
timestamp: "2022-09-15T01:20:58.177000+00:00",
|
||||||
|
edited_timestamp: null,
|
||||||
|
flags: 0,
|
||||||
|
components: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pk_message: {
|
pk_message: {
|
||||||
|
|
|
@ -64,7 +64,8 @@ INSERT INTO message_channel (message_id, channel_id) VALUES
|
||||||
('1273204543739396116', '687028734322147344'),
|
('1273204543739396116', '687028734322147344'),
|
||||||
('1273743950028607530', '1100319550446252084'),
|
('1273743950028607530', '1100319550446252084'),
|
||||||
('1278002262400176128', '1100319550446252084'),
|
('1278002262400176128', '1100319550446252084'),
|
||||||
('1278001833876525057', '1100319550446252084');
|
('1278001833876525057', '1100319550446252084'),
|
||||||
|
('1191567971970191490', '176333891320283136');
|
||||||
|
|
||||||
INSERT INTO event_message (event_id, event_type, event_subtype, message_id, part, reaction_part, source) VALUES
|
INSERT INTO event_message (event_id, event_type, event_subtype, message_id, part, reaction_part, source) VALUES
|
||||||
('$X16nfVks1wsrhq4E9SSLiqrf2N8KD0erD0scZG7U5xg', 'm.room.message', 'm.text', '1126786462646550579', 0, 0, 1),
|
('$X16nfVks1wsrhq4E9SSLiqrf2N8KD0erD0scZG7U5xg', 'm.room.message', 'm.text', '1126786462646550579', 0, 0, 1),
|
||||||
|
@ -103,7 +104,8 @@ INSERT INTO event_message (event_id, event_type, event_subtype, message_id, part
|
||||||
('$qmyjr-ISJtnOM5WTWLI0fT7uSlqRLgpyin2d2NCglCU', 'm.room.message', 'm.text', '1273204543739396116', 0, 0, 0),
|
('$qmyjr-ISJtnOM5WTWLI0fT7uSlqRLgpyin2d2NCglCU', 'm.room.message', 'm.text', '1273204543739396116', 0, 0, 0),
|
||||||
('$W1nsDhNIojWrcQOdnOD9RaEvrz2qyZErQoNhPRs1nK4', 'm.room.message', 'm.text', '1273743950028607530', 0, 0, 0),
|
('$W1nsDhNIojWrcQOdnOD9RaEvrz2qyZErQoNhPRs1nK4', 'm.room.message', 'm.text', '1273743950028607530', 0, 0, 0),
|
||||||
('$UTqiL3Zj3FC4qldxRLggN1fhygpKl8sZ7XGY5f9MNbF', 'm.room.message', 'm.text', '1278002262400176128', 0, 0, 1),
|
('$UTqiL3Zj3FC4qldxRLggN1fhygpKl8sZ7XGY5f9MNbF', 'm.room.message', 'm.text', '1278002262400176128', 0, 0, 1),
|
||||||
('$aLVZyiC3HlOu-prCSIaXlQl68I8leUdnPFiCwkgn6qM', 'm.room.message', 'm.text', '1278001833876525057', 0, 0, 1);
|
('$aLVZyiC3HlOu-prCSIaXlQl68I8leUdnPFiCwkgn6qM', 'm.room.message', 'm.text', '1278001833876525057', 0, 0, 1),
|
||||||
|
('$tBIT8mO7XTTCgIINyiAIy6M2MSoPAdJenRl_RLyYuaE', 'm.room.message', 'm.text', '1191567971970191490', 0, 0, 1);
|
||||||
|
|
||||||
INSERT INTO file (discord_url, mxc_url) VALUES
|
INSERT INTO file (discord_url, mxc_url) VALUES
|
||||||
('https://cdn.discordapp.com/attachments/497161332244742154/1124628646431297546/image.png', 'mxc://cadence.moe/qXoZktDqNtEGuOCZEADAMvhM'),
|
('https://cdn.discordapp.com/attachments/497161332244742154/1124628646431297546/image.png', 'mxc://cadence.moe/qXoZktDqNtEGuOCZEADAMvhM'),
|
||||||
|
|
Loading…
Reference in a new issue