From 9f6a54be81c73261c6bef2c25c828846a14c7fa1 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Thu, 24 Oct 2024 10:53:11 -0600 Subject: [PATCH] connector/tomatrix: log when hashing unsupported media type Signed-off-by: Sumner Evans --- pkg/connector/matrix.go | 4 ++-- pkg/connector/tomatrix.go | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/connector/matrix.go b/pkg/connector/matrix.go index 3f0cfc5d..508d3e89 100644 --- a/pkg/connector/matrix.go +++ b/pkg/connector/matrix.go @@ -208,7 +208,7 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2. case *tg.UpdateNewMessage: msg := update.Message.(*tg.Message) hasher.Write([]byte(msg.Message)) - hasher.Write(mediaHashID(msg.Media)) + hasher.Write(mediaHashID(ctx, msg.Media)) } } if tgMessageID == 0 { @@ -293,7 +293,7 @@ func (t *TelegramClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.Mat case *tg.UpdateNewMessage: msg := update.Message.(*tg.Message) hasher.Write([]byte(msg.Message)) - hasher.Write(mediaHashID(msg.Media)) + hasher.Write(mediaHashID(ctx, msg.Media)) } } default: diff --git a/pkg/connector/tomatrix.go b/pkg/connector/tomatrix.go index 4e43e973..649fa05c 100644 --- a/pkg/connector/tomatrix.go +++ b/pkg/connector/tomatrix.go @@ -33,12 +33,14 @@ type ttlable interface { GetTTLSeconds() (value int, ok bool) } -func mediaHashID(media tg.MessageMediaClass) []byte { - switch media := media.(type) { +func mediaHashID(ctx context.Context, m tg.MessageMediaClass) []byte { + switch media := m.(type) { case *tg.MessageMediaPhoto: return binary.BigEndian.AppendUint64(nil, uint64(media.Photo.GetID())) case *tg.MessageMediaDocument: return binary.BigEndian.AppendUint64(nil, uint64(media.Document.GetID())) + default: + zerolog.Ctx(ctx).Error().Type("media_type", m).Msg("Attempted to get hash for unsupported media type ID") } return nil } @@ -67,7 +69,7 @@ func (c *TelegramClient) mediaToMatrix(ctx context.Context, portal *bridgev2.Por }, nil, nil, nil case tg.MessageMediaPhotoTypeID, tg.MessageMediaDocumentTypeID: converted, disappearingSetting, err := c.convertMediaRequiringUpload(ctx, portal, intent, msg.ID, media) - return converted, disappearingSetting, mediaHashID(media), err + return converted, disappearingSetting, mediaHashID(ctx, media), err case tg.MessageMediaContactTypeID: return c.convertContact(media), nil, nil, nil case tg.MessageMediaGeoTypeID, tg.MessageMediaGeoLiveTypeID, tg.MessageMediaVenueTypeID: