From d8b83759091cd9314ed9b73719fe35ebb8e115f4 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Wed, 28 Jun 2023 23:38:58 +1200 Subject: [PATCH] fix a variety of bugs that snuck in --- d2m/actions/create-room.js | 6 ++++-- d2m/actions/send-message.js | 6 +++--- d2m/event-dispatcher.js | 2 +- db/ooye.db | Bin 94208 -> 106496 bytes matrix/api.js | 2 +- package-lock.json | 6 +++--- test/data.js | 2 +- 7 files changed, 13 insertions(+), 11 deletions(-) diff --git a/d2m/actions/create-room.js b/d2m/actions/create-room.js index 96a9671..c4baa2d 100644 --- a/d2m/actions/create-room.js +++ b/d2m/actions/create-room.js @@ -58,7 +58,7 @@ async function channelToKState(channel, guild) { "m.room.join_rules/": { join_rule: "restricted", allow: [{ - type: "m.room.membership", + type: "m.room_membership", room_id: spaceID }] } @@ -179,7 +179,9 @@ async function createAllForGuild(guildID) { const channelIDs = discord.guildChannelMap.get(guildID) assert.ok(channelIDs) for (const channelID of channelIDs) { - await syncRoom(channelID).then(r => console.log(`synced ${channelID}:`, r)) + if (discord.channels.get(channelID)?.type === DiscordTypes.ChannelType.GuildText) { // TODO: guild sync thread channels and such. maybe make a helper function to check if a given channel is syncable? + await syncRoom(channelID).then(r => console.log(`synced ${channelID}:`, r)) + } } } diff --git a/d2m/actions/send-message.js b/d2m/actions/send-message.js index 738c59a..897f7c0 100644 --- a/d2m/actions/send-message.js +++ b/d2m/actions/send-message.js @@ -15,14 +15,14 @@ const createRoom = sync.require("../actions/create-room") /** * @param {import("discord-api-types/v10").GatewayMessageCreateDispatchData} message + * @param {import("discord-api-types/v10").APIGuild} guild */ -async function sendMessage(message) { - assert.ok(message.member) - +async function sendMessage(message, guild) { const roomID = await createRoom.ensureRoom(message.channel_id) let senderMxid = null if (!message.webhook_id) { + assert(message.member) senderMxid = await registerUser.ensureSimJoined(message.author, roomID) await registerUser.syncUser(message.author, message.member, message.guild_id, roomID) } diff --git a/d2m/event-dispatcher.js b/d2m/event-dispatcher.js index eeee451..baf19a8 100644 --- a/d2m/event-dispatcher.js +++ b/d2m/event-dispatcher.js @@ -24,7 +24,7 @@ module.exports = { * @param {import("discord-api-types/v10").GatewayMessageReactionAddDispatchData} data */ onReactionAdd(client, data) { - if (data.emoji.id !== null) return // TOOD: image emoji reactions + if (data.emoji.id !== null) return // TODO: image emoji reactions console.log(data) addReaction.addReaction(data) } diff --git a/db/ooye.db b/db/ooye.db index e62e0afe3a346783156dfc1c0677d063c496ed73..7d323c81fa70762b9aba35f54f9fda885d6c6bac 100644 GIT binary patch delta 19330 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 E2jqTg2mk;8 delta 3183 zcmeH}drXv97QpYF@BQ8T-OEsA08x+@v5LGLR746mRl)JmZe#jVrqt3^R1n0Jx?5n3 zudeJ?yt^Ii3rSW@+oX$`C`y|~t4&RVE$EINV^^2o<6AD4X6S~GH|NSpa;pF`%MSW87bz{j(Q zbB=Ye*XVc7L8p->lQetC{)^pVeQzDJRMJP znwV`>GFk0pbRnz0;^mcL)hcz_>>AqZ89NpSe<_%ifMdjXE0vc#s(Th?VYIyZmCA;a zbWu(cvl;?xYFEA-sIOeLIsoaFft*0je<_cwS131u!hNI%+rh_l!;_YV*AwxA*(}ac zF7B92pK9tJf10>S;zc)cM&vGCR#9DDxiU~!Q?tsLYCN!*XeqLo8Lb#$95-naF~0|b z@_X`FZn2NpCiWCdbiQ^za2lMM4yEVmK3YY+WQd$5+sR@w&c11P*&FNycD!}fdf!@W z6kZc&mm6Qe`*97<#|k>z+McI*OO+gdsJjj4Xx=%1pN9Zv1L7Tkvm}b_ zh@>Y$)iwJ zHpnv|^Rkr5e$n?suI9}IIeiaAP6DirVg@8_yCda9ke8!!0>~kdkAs}Q7m~({!g8PmD!M@i?n{aRdK-uXodse*>Q9m!paLKYR0l+W-UYIOt^ip; zo*_vl&;lR>Xd{pg^bwE-bQ?$onlLO$0jdCU0qp?7K;6Sxv82?NmvFuni>zYDbSlZG zhhuTC+1ioV8EfHwJ&d!5v$hwj%6x57$XJbE3pc*BiN{&?Fyb}rE9R5eHGys*{baK} z9Cl}aV~2;=X+tFe{0}cPFWs#y= z>;=SUh2ysk(nB53V&UEs7hb)08*XxBbEW7k;-B;1^YVv-;^Cl>|F;hZ#s7Cugu36t zx$t76vB=LiaS2an5qX&}GtE0+j*`%a(J?;{@D^a6AExi)Z7_Z3f~|=DoR$IZkZ8cg zPBQC-(UC9Tcf4k}{%DI)46`W7-jCSp&NIBwKF>UK5;b%h^B- zT27X8$}X@{UQO;hsbr_q!_Uc6i7mE9R6T_FTm0_LqBA*}q zD@s)Ttx;zq(OQ3#XuBRSVtO-#uXkd2$@QaHXQ$B`|C&%^HJ&bx^iB?MxzT{Vuv-*^ z5I@N`@gjQ!J8HGF>CS+2#Hn|t(fjncl|i4RIyq_XCWXXhe`e;&V;M5^WpQeOe|f02 z3QzfGPioMK)x@s8QP8p(T2+O|h`T*07>R_&3Hll)6aK9)y;fI!545DORn@2ct3;%C zwiwYrQ76r4h95;gLR`9bOs5+j-0jaFpqIGSvi~>&l{KIlqT+g@Jb*F(*!%!0mZhSb z-*UsJ%#kUP-V#yNelI*#PDJ^$d0ksS%EX?bUJIDeEJhTK{wJ_)F7uwkUY^j z<0ZVsJk)U>ceYgFdM(9aZbWGp;^+BxK9j3#KYP*njCq_EnLI$d=DyDO6x_~QJN%tPnOMh3l-D8tEB*-|`W+q{+km7nDw^D6!ZpUoHZbQxywQ2IiAF^RIR3OmS`@*eKvr}+W? r8}8z%>=gT!ZIxjwm^w-+z@e*2*wcBS9GBw>adr#hr}*ao{Sf{RZUCG= diff --git a/matrix/api.js b/matrix/api.js index 846ea64..3ec014d 100644 --- a/matrix/api.js +++ b/matrix/api.js @@ -78,7 +78,7 @@ function getAllState(roomID) { async function sendState(roomID, type, stateKey, content, mxid) { console.log(`[api] state: ${roomID}: ${type}/${stateKey}`) assert.ok(type) - assert.ok(stateKey) + assert.ok(typeof stateKey === "string") /** @type {import("../types").R.EventSent} */ const root = await mreq.mreq("PUT", path(`/client/v3/rooms/${roomID}/state/${type}/${stateKey}`, mxid), content) return root.event_id diff --git a/package-lock.json b/package-lock.json index 9556331..224e232 100644 --- a/package-lock.json +++ b/package-lock.json @@ -478,9 +478,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/better-sqlite3": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.3.0.tgz", - "integrity": "sha512-JTmvBZL/JLTc+3Msbvq6gK6elbU9/wVMqiudplHrVJpr7sVMR9KJrNhZAbW+RhXKlpMcuEhYkdcHa3TXKNXQ1w==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.4.0.tgz", + "integrity": "sha512-NmsNW1CQvqMszu/CFAJ3pLct6NEFlNfuGM6vw72KHkjOD1UDnL96XNN1BMQc1hiHo8vE2GbOWQYIpZ+YM5wrZw==", "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", diff --git a/test/data.js b/test/data.js index 9704c8d..6a65b5f 100644 --- a/test/data.js +++ b/test/data.js @@ -33,7 +33,7 @@ module.exports = { "m.room.join_rules/": { join_rule: "restricted", allow: [{ - type: "m.room.membership", + type: "m.room_membership", room_id: "!jjWAGMeQdNrVZSSfvz:cadence.moe" }] },