d->m: Better text for links to unbridged channels

This commit is contained in:
Cadence Ember 2024-02-14 11:57:01 +13:00
parent 553a9441d7
commit e0d96cde19
4 changed files with 63 additions and 3 deletions

View file

@ -41,8 +41,13 @@ function getDiscordParseCallbacks(message, guild, useHTML) {
},
/** @param {{id: string, type: "discordChannel", row: {room_id: string, name: string, nick: string?}?, via: string}} node */
channel: node => {
if (!node.row) {
return `#[channel-from-an-unknown-server]` // fallback for when this channel is not bridged
if (!node.row) { // fallback for when this channel is not bridged
const channel = discord.channels.get(node.id)
if (channel) {
return `#${channel.name} [channel not bridged]`
} else {
return `#unknown-channel [channel from an unbridged server]`
}
} else if (useHTML) {
return `<a href="https://matrix.to/#/${node.row.room_id}?${node.via}">#${node.row.nick || node.row.name}</a>`
} else {

View file

@ -105,7 +105,17 @@ test("message2event: unknown room mention", async t => {
$type: "m.room.message",
"m.mentions": {},
msgtype: "m.text",
body: "#[channel-from-an-unknown-server]"
body: "#unknown-channel [channel from an unbridged server]"
}])
})
test("message2event: unbridged room mention", async t => {
const events = await messageToEvent(data.message.unbridged_room_mention, data.guild.general, {})
t.deepEqual(events, [{
$type: "m.room.message",
"m.mentions": {},
msgtype: "m.text",
body: "#bad-boots-prison [channel not bridged]"
}])
})