From 15cba11ebdee9acf99c6d1d38eff09f0b62b5c6a Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Tue, 11 Jul 2023 10:10:47 +1200 Subject: [PATCH] get room mentions formatting working --- d2m/converters/message-to-event.js | 8 ++-- d2m/converters/message-to-event.test.js | 4 +- d2m/discord-client.js | 3 +- db/ooye.db | Bin 303104 -> 303104 bytes index.js | 2 +- scripts/save-channel-names-to-db.js | 58 ++++++++++++++++++++++++ test/data.js | 57 +++++++++++++++++++++++ 7 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 scripts/save-channel-names-to-db.js diff --git a/d2m/converters/message-to-event.js b/d2m/converters/message-to-event.js index fc76bf2..9999df9 100644 --- a/d2m/converters/message-to-event.js +++ b/d2m/converters/message-to-event.js @@ -20,11 +20,11 @@ function getDiscordParseCallbacks(message, useHTML) { } }, channel: node => { - const roomID = db.prepare("SELECT room_id FROM channel_room WHERE channel_id = ?").pluck().get(node.id) - if (roomID && useHTML) { - return "https://matrix.to/#/" + roomID + const {room_id, name, nick} = db.prepare("SELECT room_id, name, nick FROM channel_room WHERE channel_id = ?").get(node.id) + if (room_id && useHTML) { + return `#${nick || name}` } else { - return "#" + node.id + return `#${nick || name}` } }, role: node => diff --git a/d2m/converters/message-to-event.test.js b/d2m/converters/message-to-event.test.js index a456a94..e3fcb06 100644 --- a/d2m/converters/message-to-event.test.js +++ b/d2m/converters/message-to-event.test.js @@ -27,9 +27,9 @@ test("message2event: simple room mention", async t => { t.deepEqual(events, [{ $type: "m.room.message", msgtype: "m.text", - body: "@crunch god: Tell me about Phil, renowned martial arts master and creator of the Chin Trick", + body: "#main", format: "org.matrix.custom.html", - formatted_body: '@crunch god Tell me about Phil, renowned martial arts master and creator of the Chin Trick' + formatted_body: '#main' }]) }) diff --git a/d2m/discord-client.js b/d2m/discord-client.js index 2092718..91682bd 100644 --- a/d2m/discord-client.js +++ b/d2m/discord-client.js @@ -12,8 +12,9 @@ const discordPackets = sync.require("./discord-packets") class DiscordClient { /** * @param {string} discordToken + * @param {boolean} listen whether to set up the event listeners for OOYE to operate */ - constructor(discordToken) { + constructor(discordToken, listen) { this.discordToken = discordToken this.snow = new SnowTransfer(discordToken) this.cloud = new CloudStorm(discordToken, { diff --git a/db/ooye.db b/db/ooye.db index b87572013e78f96e7b0fa036a7f964b33b2fad7c..560fa72042d091d7c598c89ce57ae3556dd5c227 100644 GIT binary patch delta 32601 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 ReFJ3aLFwWllu-1-{{wt_3a$VE delta 8340 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 { + await discord.cloud.connect() + console.log("Discord gateway started") + + const f = event => onPacket(discord, event, () => discord.cloud.off("event", f)) + discord.cloud.on("event", f) +})() + +const expectedGuilds = new Set() + +const prepared = db.prepare("UPDATE channel_room SET name = ? WHERE channel_id = ?") + +/** @param {DiscordClient} discord */ +function onPacket(discord, event, unsubscribe) { + if (event.t === "READY") { + for (const obj of event.d.guilds) { + expectedGuilds.add(obj.id) + } + + } else if (event.t === "GUILD_CREATE") { + expectedGuilds.delete(event.d.id) + + // Store the channel. + for (const channel of event.d.channels || []) { + prepared.run(channel.name, channel.id) + } + + // Checked them all? + if (expectedGuilds.size === 0) { + discord.cloud.disconnect() + unsubscribe() + + // I don't know why node keeps running. + setTimeout(() => { + console.log("Stopping now.") + process.exit() + }, 1500).unref() + } + } +} diff --git a/test/data.js b/test/data.js index 52b8770..d2c586a 100644 --- a/test/data.js +++ b/test/data.js @@ -216,6 +216,63 @@ module.exports = { flags: 0, components: [] }, + simple_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: [ + "112767366235959296", "118924814567211009", + "204427286542417920", "199995902742626304", + "222168467627835392", "238028326281805825", + "259806643414499328", "265239342648131584", + "271173313575780353", "287733611912757249", + "225744901915148298", "305775031223320577", + "318243902521868288", "348651574924541953", + "349185088157777920", "378402925128712193", + "392141548932038658", "393912152173576203", + "482860581670486028", "495384759074160642", + "638988388740890635", "373336013109461013", + "530220455085473813", "454567553738473472", + "790724320824655873", "1123518980456452097", + "1040735082610167858", "695946570482450442", + "1123460940935991296", "849737964090556488" + ], + 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: "<#112760669178241024>", + 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_message_link: { id: "1126788210308161626", type: 0,