bridge both ways and prevent reflections
This commit is contained in:
parent
3578ca28b5
commit
39cdba9f90
15 changed files with 67 additions and 51 deletions
|
@ -17,7 +17,6 @@ const createRoom = sync.require("../actions/create-room")
|
|||
async function addReaction(data) {
|
||||
const user = data.member?.user
|
||||
assert.ok(user && user.username)
|
||||
// TODO: should add my own sent messages to event_message so they can be reacted to?
|
||||
const parentID = db.prepare("SELECT event_id FROM event_message WHERE message_id = ? AND part = 0").pluck().get(data.message_id) // 0 = primary
|
||||
if (!parentID) return // TODO: how to handle reactions for unbridged messages? is there anything I can do?
|
||||
assert.equal(typeof parentID, "string")
|
||||
|
|
|
@ -37,7 +37,7 @@ async function sendMessage(message, guild) {
|
|||
delete eventWithoutType.$type
|
||||
|
||||
const eventID = await api.sendEvent(roomID, eventType, event, senderMxid)
|
||||
db.prepare("INSERT INTO event_message (event_id, message_id, part) VALUES (?, ?, ?)").run(eventID, message.id, eventPart)
|
||||
db.prepare("INSERT INTO event_message (event_id, message_id, part, source) VALUES (?, ?, ?, 1)").run(eventID, message.id, eventPart) // source 1 = discord
|
||||
|
||||
eventPart = 1 // TODO: use more intelligent algorithm to determine whether primary or supporting
|
||||
eventIDs.push(eventID)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
const {test} = require("supertape")
|
||||
const assert = require("assert")
|
||||
const {messageToEvent} = require("./message-to-event")
|
||||
const data = require("../../test/data")
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const assert = require("assert").strict
|
||||
const {sync} = require("../passthrough")
|
||||
const {sync, db} = require("../passthrough")
|
||||
|
||||
/** @type {import("./actions/send-message")}) */
|
||||
const sendMessage = sync.require("./actions/send-message")
|
||||
|
@ -18,6 +18,13 @@ module.exports = {
|
|||
const channel = client.channels.get(message.channel_id)
|
||||
const guild = client.guilds.get(channel.guild_id)
|
||||
if (message.guild_id !== "112760669178241024" && message.guild_id !== "497159726455455754") return // TODO: activate on other servers (requires the space creation flow to be done first)
|
||||
if (message.webhook_id) {
|
||||
const row = db.prepare("SELECT webhook_id FROM webhook WHERE webhook_id = ?").pluck().get(message.webhook_id)
|
||||
if (row) {
|
||||
// The message was sent by the bridge's own webhook on discord. We don't want to reflect this back, so just drop it.
|
||||
return
|
||||
}
|
||||
}
|
||||
sendMessage.sendMessage(message, guild)
|
||||
},
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue