Skip to content
Snippets Groups Projects
Unverified Commit a9fc6d27 authored by Sumner Evans's avatar Sumner Evans
Browse files

connector/matrixfmt: return a whole SendMessageBody

parent c20b435d
No related branches found
No related tags found
No related merge requests found
Pipeline #16454 passed
......@@ -356,14 +356,9 @@ func (l *LinkedInClient) GetUserInfo(ctx context.Context, ghost *bridgev2.Ghost)
func (l *LinkedInClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage) (*bridgev2.MatrixMessageResponse, error) {
conversationURN := types.NewURN(string(msg.Portal.ID))
message, attrs := matrixfmt.Parse(ctx, l.matrixParser, msg.Content)
sendMessagePayload := linkedingo.SendMessagePayload{
Message: linkedingo.SendMessage{
Body: linkedingo.SendMessageBody{
Attributes: attrs,
Text: message,
},
Body: matrixfmt.Parse(ctx, l.matrixParser, msg.Content),
ConversationURN: conversationURN,
},
}
......
......@@ -48,27 +48,26 @@ func toLinkedInAttribute(br linkedinfmt.BodyRange) linkedingo.SendMessageAttribu
}
}
func Parse(ctx context.Context, parser *HTMLParser, content *event.MessageEventContent) (string, []linkedingo.SendMessageAttribute) {
func Parse(ctx context.Context, parser *HTMLParser, content *event.MessageEventContent) (body linkedingo.SendMessageBody) {
if content.MsgType.IsMedia() && (content.FileName == "" || content.FileName == content.Body) {
// The body is the filename.
return "", nil
return
}
if content.Format != event.FormatHTML {
return content.Body, nil
body.Text = content.Body
return
}
parseCtx := NewContext(ctx)
parseCtx.AllowedMentions = content.Mentions
parsed := parser.Parse(content.FormattedBody, parseCtx)
if parsed == nil {
return "", nil
return
}
var entities []linkedingo.SendMessageAttribute
if len(parsed.Entities) > 0 {
entities = make([]linkedingo.SendMessageAttribute, len(parsed.Entities))
for i, ent := range parsed.Entities {
entities[i] = toLinkedInAttribute(ent)
}
body.Text = parsed.String.String()
body.Attributes = make([]linkedingo.SendMessageAttribute, len(parsed.Entities))
for i, ent := range parsed.Entities {
body.Attributes[i] = toLinkedInAttribute(ent)
}
return parsed.String.String(), entities
return
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment