portal: add id field for per-message profiles

Closes #176
This commit is contained in:
Tulir Asokan
2025-03-20 16:21:34 +02:00
parent 4d67dbcd00
commit 9605992758

View File

@@ -18,6 +18,8 @@ package main
import ( import (
"context" "context"
"crypto/sha256"
"encoding/hex"
"fmt" "fmt"
"html" "html"
"strconv" "strconv"
@@ -357,8 +359,7 @@ func (puppet *Puppet) addMemberMeta(part *ConvertedMessage, msg *discordgo.Messa
} }
if msg.Member.Nick != "" || !avatarURL.IsEmpty() { if msg.Member.Nick != "" || !avatarURL.IsEmpty() {
perMessageProfile := map[string]any{ perMessageProfile := map[string]any{
"is_multiple_users": false, "id": fmt.Sprintf("%s_%s", msg.GuildID, msg.Author.ID),
"displayname": msg.Member.Nick, "displayname": msg.Member.Nick,
"avatar_url": avatarURL.String(), "avatar_url": avatarURL.String(),
} }
@@ -396,9 +397,9 @@ func (puppet *Puppet) addWebhookMeta(part *ConvertedMessage, msg *discordgo.Mess
"avatar_url": msg.Author.AvatarURL(""), "avatar_url": msg.Author.AvatarURL(""),
"avatar_mxc": avatarURL.String(), "avatar_mxc": avatarURL.String(),
} }
profileID := sha256.Sum256(fmt.Appendf(nil, "%s:%s", msg.Author.Username, msg.Author.Avatar))
part.Extra["com.beeper.per_message_profile"] = map[string]any{ part.Extra["com.beeper.per_message_profile"] = map[string]any{
"is_multiple_users": true, "id": hex.EncodeToString(profileID[:]),
"avatar_url": avatarURL.String(), "avatar_url": avatarURL.String(),
"displayname": msg.Author.Username, "displayname": msg.Author.Username,
} }