From e0d96cde1975a437551f8f513d81012bb361dfcf Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Wed, 14 Feb 2024 11:57:01 +1300 Subject: [PATCH] d->m: Better text for links to unbridged channels --- d2m/converters/message-to-event.js | 9 ++++-- d2m/converters/message-to-event.test.js | 12 +++++++- test/data.js | 41 +++++++++++++++++++++++++ test/test.js | 4 +++ 4 files changed, 63 insertions(+), 3 deletions(-) diff --git a/d2m/converters/message-to-event.js b/d2m/converters/message-to-event.js index b8c7a13..2633518 100644 --- a/d2m/converters/message-to-event.js +++ b/d2m/converters/message-to-event.js @@ -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 `#${node.row.nick || node.row.name}` } else { diff --git a/d2m/converters/message-to-event.test.js b/d2m/converters/message-to-event.test.js index 78f64b2..33eac94 100644 --- a/d2m/converters/message-to-event.test.js +++ b/d2m/converters/message-to-event.test.js @@ -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]" }]) }) diff --git a/test/data.js b/test/data.js index 0832eaa..c82ea5c 100644 --- a/test/data.js +++ b/test/data.js @@ -536,6 +536,47 @@ module.exports = { attachments: [], guild_id: "112760669178241024" }, + unbridged_room_mention: { + type: 0, + tts: false, + timestamp: "2023-07-10T20:04:25.939000+00:00", + referenced_message: null, + pinned: false, + nonce: "1128054139385806848", + mentions: [], + mention_roles: [], + mention_everyone: false, + member: { + roles: [], + premium_since: null, + pending: false, + nick: null, + mute: false, + joined_at: "2015-11-11T09:55:40.321000+00:00", + flags: 0, + deaf: false, + communication_disabled_until: null, + avatar: null + }, + id: "1128054143064494233", + flags: 0, + embeds: [], + edited_timestamp: null, + content: "<#498323546729086986>", + components: [], + channel_id: "266767590641238027", + author: { + username: "kumaccino", + public_flags: 128, + id: "113340068197859328", + global_name: "kumaccino", + discriminator: "0", + avatar_decoration: null, + avatar: "b48302623a12bc7c59a71328f72ccb39" + }, + attachments: [], + guild_id: "112760669178241024" + }, simple_role_mentions: { id: "1162374402785153106", type: 0, diff --git a/test/test.js b/test/test.js index 42b1a0e..263ccc7 100644 --- a/test/test.js +++ b/test/test.js @@ -29,6 +29,10 @@ const discord = { channels: new Map([ ["497161350934560778", { guild_id: "497159726455455754" + }], + ["498323546729086986", { + guild_id: "497159726455455754", + name: "bad-boots-prison" }] ]) }