From f7ea8f417bbecac46bf6213cb252851ad4ed0af0 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Mon, 18 Nov 2024 16:05:25 -0700 Subject: [PATCH 1/2] connector/matrix: more logging for matrix message handling Signed-off-by: Sumner Evans --- pkg/connector/matrix.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/pkg/connector/matrix.go b/pkg/connector/matrix.go index 471549a5..3e0e6f1c 100644 --- a/pkg/connector/matrix.go +++ b/pkg/connector/matrix.go @@ -3,6 +3,7 @@ package connector import ( "context" "crypto/sha256" + "encoding/base64" "errors" "fmt" "image" @@ -184,6 +185,8 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2. if err != nil { 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 @@ -195,12 +198,12 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2. if msg.ReplyTo != nil { _, messageID, err := ids.ParseMessageID(msg.ReplyTo.ID) if err != nil { + log.Warn().Msg("failed to parse replied-to message ID") return nil, err } replyTo = &tg.InputReplyToMessage{ReplyToMsgID: messageID} } - // TODO handle sticker var updates tg.UpdatesClass if msg.Event.Type == event.EventSticker { var media tg.InputMediaClass @@ -267,6 +270,7 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2. } } if err != nil { + log.Err(err).Msg("failed to send message to Telegram") 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) } + 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{ DB: &database.Message{ - ID: ids.MakeMessageID(msg.Portal.PortalKey, tgMessageID), + ID: messageID, MXID: msg.Event.ID, Room: msg.Portal.PortalKey, SenderID: t.userID, - Timestamp: time.Unix(int64(tgDate), 0), + Timestamp: timestamp, Metadata: &MessageMetadata{ - ContentHash: hasher.Sum(nil), + ContentHash: hash, ContentURI: contentURI, }, }, From e590ebcbaccff5892f5bb15f81f5036ca6e93a71 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Wed, 20 Nov 2024 14:38:42 -0700 Subject: [PATCH 2/2] connector/client: add more logging to IsLoggedIn Signed-off-by: Sumner Evans --- pkg/connector/client.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/connector/client.go b/pkg/connector/client.go index 8ecb4106..03ebdd83 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -628,7 +628,14 @@ func (t *TelegramClient) getUserInfoFromTelegramUser(ctx context.Context, u tg.U } func (t *TelegramClient) IsLoggedIn() bool { - return t != nil && t.client != nil && t.userLogin.Metadata.(*UserLoginMetadata).Session.HasAuthKey() + if t == nil { + return false + } + t.main.Bridge.Log.Debug(). + Bool("has_client", t.client != nil). + Bool("has_auth_key", t.userLogin.Metadata.(*UserLoginMetadata).Session.HasAuthKey()). + Msg("Checking if user is logged in") + return t.client != nil && t.userLogin.Metadata.(*UserLoginMetadata).Session.HasAuthKey() } func (t *TelegramClient) LogoutRemote(ctx context.Context) {