connector/matrix: more logging for matrix message handling

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-11-18 16:05:25 -07:00
parent b316cb131a
commit 9d80c9e396
+18 -4
View File
@@ -3,6 +3,7 @@ package connector
import ( import (
"context" "context"
"crypto/sha256" "crypto/sha256"
"encoding/base64"
"errors" "errors"
"fmt" "fmt"
"image" "image"
@@ -184,6 +185,8 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.
if err != nil { if err != nil {
return nil, err return nil, err
} }
log := zerolog.Ctx(ctx).With().Stringer("portal_key", msg.Portal.PortalKey).Any("peer_id", peer).Logger()
ctx = log.WithContext(ctx)
var contentURI id.ContentURIString var contentURI id.ContentURIString
@@ -195,12 +198,12 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.
if msg.ReplyTo != nil { if msg.ReplyTo != nil {
_, messageID, err := ids.ParseMessageID(msg.ReplyTo.ID) _, messageID, err := ids.ParseMessageID(msg.ReplyTo.ID)
if err != nil { if err != nil {
log.Warn().Msg("failed to parse replied-to message ID")
return nil, err return nil, err
} }
replyTo = &tg.InputReplyToMessage{ReplyToMsgID: messageID} replyTo = &tg.InputReplyToMessage{ReplyToMsgID: messageID}
} }
// TODO handle sticker
var updates tg.UpdatesClass var updates tg.UpdatesClass
if msg.Event.Type == event.EventSticker { if msg.Event.Type == event.EventSticker {
var media tg.InputMediaClass var media tg.InputMediaClass
@@ -267,6 +270,7 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.
} }
} }
if err != nil { if err != nil {
log.Err(err).Msg("failed to send message to Telegram")
return nil, t.humanizeSendError(err) return nil, t.humanizeSendError(err)
} }
@@ -297,15 +301,25 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.
return nil, fmt.Errorf("unknown update from message response %T", updates) return nil, fmt.Errorf("unknown update from message response %T", updates)
} }
messageID := ids.MakeMessageID(msg.Portal.PortalKey, tgMessageID)
timestamp := time.Unix(int64(tgDate), 0)
hash := hasher.Sum(nil)
log.Info().
Int("tg_message_id", tgMessageID).
Str("message_id", string(messageID)).
Time("timestamp", timestamp).
Str("content_hash", base64.StdEncoding.EncodeToString(hash)).
Msg("sent message successfully")
resp = &bridgev2.MatrixMessageResponse{ resp = &bridgev2.MatrixMessageResponse{
DB: &database.Message{ DB: &database.Message{
ID: ids.MakeMessageID(msg.Portal.PortalKey, tgMessageID), ID: messageID,
MXID: msg.Event.ID, MXID: msg.Event.ID,
Room: msg.Portal.PortalKey, Room: msg.Portal.PortalKey,
SenderID: t.userID, SenderID: t.userID,
Timestamp: time.Unix(int64(tgDate), 0), Timestamp: timestamp,
Metadata: &MessageMetadata{ Metadata: &MessageMetadata{
ContentHash: hasher.Sum(nil), ContentHash: hash,
ContentURI: contentURI, ContentURI: contentURI,
}, },
}, },