class Message
Maps a Discord message to one or more Matrix events.
A single Discord message may produce multiple Matrix events (one per attachment), distinguished by discord_attachment_id. The composite unique index on (discord_id, discord_attachment_id, discord_channel_id, discord_channel_receiver) ensures no duplicates.
msg = Message.create( discord_id: "msg1", discord_channel_id: "ch1", discord_sender: "user1", mxid: "$evt1", timestamp: 1234567890 ) msg.portal # => Portal
Definitions
def self.by_discord_id(discord_id, channel_id, receiver = "")
Find all parts of a Discord message (text + attachments).
Implementation
def self.by_discord_id(discord_id, channel_id, receiver = "")
where(
discord_id: discord_id,
discord_channel_id: channel_id,
discord_channel_receiver: receiver
).order(:discord_attachment_id).all
end
def self.by_mxid(mxid)
Find a message by its Matrix event ID.
Implementation
def self.by_mxid(mxid)
first(mxid: mxid)
end