From 2743d5375ac36599100c1e1b947db42e44b0b606 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Thu, 9 Jan 2025 17:40:39 -0700 Subject: [PATCH] connector/tomatrix: fix broadcast messages with no From user Signed-off-by: Sumner Evans --- pkg/connector/tomatrix.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/connector/tomatrix.go b/pkg/connector/tomatrix.go index 50b6d199..22e070bd 100644 --- a/pkg/connector/tomatrix.go +++ b/pkg/connector/tomatrix.go @@ -12,6 +12,7 @@ import ( "github.com/gotd/td/tg" "github.com/rs/zerolog" "go.mau.fi/util/exmime" + "go.mau.fi/util/ptr" "maunium.net/go/mautrix/bridgev2" "maunium.net/go/mautrix/bridgev2/database" "maunium.net/go/mautrix/bridgev2/networkid" @@ -113,16 +114,19 @@ func (c *TelegramClient) convertToMatrix(ctx context.Context, portal *bridgev2.P if peerType, _, err := ids.ParsePortalID(portal.ID); err != nil { return nil, err } else if peerType == ids.PeerTypeChannel && !portal.Metadata.(*PortalMetadata).IsSuperGroup { - var profile event.BeeperPerMessageProfile + var sender *networkid.UserID if msg.Out { - profile, err = portal.PerMessageProfileForSender(ctx, c.userID) - } else { - profile, err = portal.PerMessageProfileForSender(ctx, c.getPeerSender(msg.FromID).Sender) + sender = &c.userID + } else if fromID, ok := msg.GetFromID(); ok { + sender = ptr.Ptr(c.getPeerSender(fromID).Sender) } - if err != nil { - return nil, err + if sender != nil { + profile, err := portal.PerMessageProfileForSender(ctx, *sender) + if err != nil { + return nil, err + } + perMessageProfile = &profile } - perMessageProfile = &profile } cm = &bridgev2.ConvertedMessage{}