handlematrix: also read edit responses properly
This commit is contained in:
@@ -403,6 +403,7 @@ func (t *TelegramClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.
|
|||||||
tgMessageID = sentMessage.ID
|
tgMessageID = sentMessage.ID
|
||||||
tgDate = sentMessage.Date
|
tgDate = sentMessage.Date
|
||||||
hasher.Write([]byte(msg.Content.Body))
|
hasher.Write([]byte(msg.Content.Body))
|
||||||
|
hasher.Write(mediaHashID(ctx, sentMessage.Media))
|
||||||
case *tg.Updates:
|
case *tg.Updates:
|
||||||
var realSentMessage *tg.Message
|
var realSentMessage *tg.Message
|
||||||
for _, u := range sentMessage.Updates {
|
for _, u := range sentMessage.Updates {
|
||||||
@@ -533,15 +534,37 @@ func (t *TelegramClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.Mat
|
|||||||
switch sentMessage := updates.(type) {
|
switch sentMessage := updates.(type) {
|
||||||
case *tg.UpdateShortSentMessage:
|
case *tg.UpdateShortSentMessage:
|
||||||
hasher.Write([]byte(msg.Content.Body))
|
hasher.Write([]byte(msg.Content.Body))
|
||||||
|
hasher.Write(mediaHashID(ctx, sentMessage.Media))
|
||||||
case *tg.Updates:
|
case *tg.Updates:
|
||||||
|
var realSentMessage *tg.Message
|
||||||
for _, u := range sentMessage.Updates {
|
for _, u := range sentMessage.Updates {
|
||||||
switch update := u.(type) {
|
switch update := u.(type) {
|
||||||
case *tg.UpdateNewMessage:
|
case *tg.UpdateNewMessage:
|
||||||
msg := update.Message.(*tg.Message)
|
if realSentMessage != nil {
|
||||||
hasher.Write([]byte(msg.Message))
|
log.Warn().
|
||||||
hasher.Write(mediaHashID(ctx, msg.Media))
|
Int("prev_id", realSentMessage.ID).
|
||||||
|
Int("new_id", update.Message.GetID()).
|
||||||
|
Msg("Multiple messages in edit response")
|
||||||
|
}
|
||||||
|
realSentMessage = update.Message.(*tg.Message)
|
||||||
|
case *tg.UpdateNewChannelMessage:
|
||||||
|
if realSentMessage != nil {
|
||||||
|
log.Warn().
|
||||||
|
Int("prev_id", realSentMessage.ID).
|
||||||
|
Int("new_id", update.Message.GetID()).
|
||||||
|
Msg("Multiple messages in edit response")
|
||||||
|
}
|
||||||
|
realSentMessage = update.Message.(*tg.Message)
|
||||||
|
default:
|
||||||
|
log.Warn().Type("update_type", update).Msg("Unexpected update type in edit message response")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if realSentMessage != nil {
|
||||||
|
hasher.Write([]byte(realSentMessage.Message))
|
||||||
|
hasher.Write(mediaHashID(ctx, realSentMessage.Media))
|
||||||
|
} else {
|
||||||
|
hasher.Write([]byte(msg.Content.Body))
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("unknown update from message response %T", updates)
|
return fmt.Errorf("unknown update from message response %T", updates)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user