diff --git a/pkg/connector/tomatrix.go b/pkg/connector/tomatrix.go index 9c2aca5ca2dfa2f4bdb379df474383d1fdcc9fe9..026d68b0815a8db9f12ed8e3e73d46ab382ee396 100644 --- a/pkg/connector/tomatrix.go +++ b/pkg/connector/tomatrix.go @@ -7,6 +7,7 @@ import ( "maunium.net/go/mautrix/bridgev2" "maunium.net/go/mautrix/bridgev2/database" + "maunium.net/go/mautrix/bridgev2/networkid" "maunium.net/go/mautrix/event" "go.mau.fi/mautrix-linkedin/pkg/connector/linkedinfmt" @@ -37,6 +38,10 @@ func (l *LinkedInClient) convertToMatrix(ctx context.Context, portal *bridgev2.P part, err = l.convertExternalMediaToMatrix(ctx, portal, intent, rc.ExternalMedia) case rc.File != nil: part, err = l.convertFileToMatrix(ctx, portal, intent, rc.File) + case rc.RepliedMessageContent != nil: + cm.ReplyTo = &networkid.MessageOptionalPartID{ + MessageID: rc.RepliedMessageContent.OriginalMessage.MessageID(), + } case rc.VectorImage != nil: part, err = l.convertVectorImageToMatrix(ctx, portal, intent, rc.VectorImage) case rc.Video != nil: diff --git a/pkg/linkedingo/types/realtime.go b/pkg/linkedingo/types/realtime.go index 2089fc8aab89d8563701ebf414f1124573050ab7..801f3587c818495c40d7863d8a5cea2f101d6c7d 100644 --- a/pkg/linkedingo/types/realtime.go +++ b/pkg/linkedingo/types/realtime.go @@ -45,11 +45,12 @@ const ( ) type RenderContent struct { - Audio *AudioMetadata `json:"audio,omitempty"` - ExternalMedia *ExternalMedia `json:"externalMedia,omitempty"` - File *FileAttachment `json:"file,omitempty"` - VectorImage *VectorImage `json:"vectorImage,omitempty"` - Video *VideoPlayMetadata `json:"video,omitempty"` + Audio *AudioMetadata `json:"audio,omitempty"` + ExternalMedia *ExternalMedia `json:"externalMedia,omitempty"` + File *FileAttachment `json:"file,omitempty"` + RepliedMessageContent *RepliedMessage `json:"repliedMessageContent,omitempty"` + VectorImage *VectorImage `json:"vectorImage,omitempty"` + Video *VideoPlayMetadata `json:"video,omitempty"` } // Message represents a com.linkedin.messenger.Message object. @@ -68,6 +69,11 @@ func (m Message) MessageID() networkid.MessageID { return networkid.MessageID(m.EntityURN.String()) } +// RepliedMessage represents a com.linkedin.messenger.RepliedMessage object. +type RepliedMessage struct { + OriginalMessage Message `json:"originalMessage,omitempty"` +} + // RealtimeTypingIndicator represents a // com.linkedin.messenger.RealtimeTypingIndicator object. type RealtimeTypingIndicator struct {