Add support for MSC-4144: Per-Message Profiles #82
1 changed files with 16 additions and 3 deletions
|
|
@ -62,7 +62,20 @@ async function _interact({guild_id, data}, {api}) {
|
|||
.sort((a, b) => webGuild._getPosition(a, discord.channels) - webGuild._getPosition(b, discord.channels))
|
||||
.filter(channel => from("channel_room").join("member_cache", "room_id").select("mxid").where({channel_id: channel.id, mxid: event.sender}).get())
|
||||
const matrixMember = select("member_cache", ["displayname", "avatar_url"], {room_id: message.room_id, mxid: event.sender}).get()
|
||||
const name = matrixMember?.displayname || event.sender
|
||||
// Check for per-message profile
|
||||
const perMessageProfile = event.content?.["com.beeper.per_message_profile"]
|
||||
let name = matrixMember?.displayname || event.sender
|
||||
let avatar = utils.getPublicUrlForMxc(matrixMember?.avatar_url)
|
||||
let profileNote = ""
|
||||
if (perMessageProfile) {
|
||||
if (perMessageProfile.displayname) {
|
||||
name = perMessageProfile.displayname
|
||||
}
|
||||
if ("avatar_url" in perMessageProfile) {
|
||||
avatar = perMessageProfile.avatar_url ? utils.getPublicUrlForMxc(perMessageProfile.avatar_url) : undefined
|
||||
}
|
||||
profileNote = " (sent with a per-message profile)"
|
||||
}
|
||||
return {
|
||||
type: DiscordTypes.InteractionResponseType.ChannelMessageWithSource,
|
||||
data: {
|
||||
|
|
@ -70,9 +83,9 @@ async function _interact({guild_id, data}, {api}) {
|
|||
author: {
|
||||
name,
|
||||
url: `https://matrix.to/#/${event.sender}`,
|
||||
icon_url: utils.getPublicUrlForMxc(matrixMember?.avatar_url)
|
||||
icon_url: avatar
|
||||
},
|
||||
description: `This Matrix message was delivered to Discord by **Out Of Your Element**.\n[View on Matrix →](<https://matrix.to/#/${message.room_id}/${message.event_id}?${via}>)\n\n**User ID**: [${event.sender}](<https://matrix.to/#/${event.sender}>)`,
|
||||
description: `This Matrix message was delivered to Discord by **Out Of Your Element**${profileNote}.\n[View on Matrix →](<https://matrix.to/#/${message.room_id}/${message.event_id}?${via}>)\n\n**User ID**: [${event.sender}](<https://matrix.to/#/${event.sender}>)`,
|
||||
color: 0x0dbd8b,
|
||||
fields: [{
|
||||
name: "In Channels",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue