From ce4e45bdb430ae59ca6f4a96d235e641978feec3 Mon Sep 17 00:00:00 2001 From: Sumner Evans <sumner.evans@automattic.com> Date: Wed, 12 Feb 2025 09:23:51 -0700 Subject: [PATCH] connector: implement receiving replies Signed-off-by: Sumner Evans <sumner.evans@automattic.com> --- pkg/connector/tomatrix.go | 5 +++++ pkg/linkedingo/types/realtime.go | 16 +++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/connector/tomatrix.go b/pkg/connector/tomatrix.go index 9c2aca5..026d68b 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 2089fc8..801f358 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 { -- GitLab