mirror of
https://mau.dev/mautrix/go.git
synced 2026-03-14 14:25:53 +01:00
bridgev2/portal: log mismatching disappearing timers in events
This commit is contained in:
parent
adc035b6a5
commit
bea28c1381
2 changed files with 32 additions and 2 deletions
|
|
@ -37,6 +37,16 @@ type DisappearingSetting struct {
|
|||
DisappearAt time.Time
|
||||
}
|
||||
|
||||
func DisappearingSettingFromEvent(evt *event.BeeperDisappearingTimer) DisappearingSetting {
|
||||
if evt == nil || evt.Type == event.DisappearingTypeNone {
|
||||
return DisappearingSetting{}
|
||||
}
|
||||
return DisappearingSetting{
|
||||
Type: evt.Type,
|
||||
Timer: evt.Timer.Duration,
|
||||
}
|
||||
}
|
||||
|
||||
func (ds DisappearingSetting) Normalize() DisappearingSetting {
|
||||
if ds.Type == event.DisappearingTypeNone {
|
||||
ds.Timer = 0
|
||||
|
|
|
|||
|
|
@ -1122,6 +1122,16 @@ func (portal *Portal) handleMatrixMessage(ctx context.Context, sender *UserLogin
|
|||
}
|
||||
}
|
||||
}
|
||||
var messageTimer *event.BeeperDisappearingTimer
|
||||
if msgContent != nil {
|
||||
messageTimer = msgContent.BeeperDisappearingTimer
|
||||
}
|
||||
if messageTimer != nil && *portal.Disappear.ToEventContent() != *messageTimer {
|
||||
log.Warn().
|
||||
Any("event_timer", messageTimer).
|
||||
Any("portal_timer", portal.Disappear.ToEventContent()).
|
||||
Msg("Mismatching disappearing timer in event")
|
||||
}
|
||||
|
||||
wrappedMsgEvt := &MatrixMessage{
|
||||
MatrixEventBase: MatrixEventBase[*event.MessageEventContent]{
|
||||
|
|
@ -1198,12 +1208,16 @@ func (portal *Portal) handleMatrixMessage(ctx context.Context, sender *UserLogin
|
|||
}
|
||||
portal.sendSuccessStatus(ctx, evt, resp.StreamOrder, message.MXID)
|
||||
}
|
||||
if portal.Disappear.Type != event.DisappearingTypeNone {
|
||||
ds := portal.Disappear
|
||||
if messageTimer != nil {
|
||||
ds = database.DisappearingSettingFromEvent(messageTimer)
|
||||
}
|
||||
if ds.Type != event.DisappearingTypeNone {
|
||||
go portal.Bridge.DisappearLoop.Add(ctx, &database.DisappearingMessage{
|
||||
RoomID: portal.MXID,
|
||||
EventID: message.MXID,
|
||||
Timestamp: message.Timestamp,
|
||||
DisappearingSetting: portal.Disappear.StartingAt(message.Timestamp),
|
||||
DisappearingSetting: ds.StartingAt(message.Timestamp),
|
||||
})
|
||||
}
|
||||
if resp.Pending {
|
||||
|
|
@ -4082,6 +4096,12 @@ func (portal *Portal) sendRoomMeta(
|
|||
Msg("Failed to set room metadata")
|
||||
return false
|
||||
}
|
||||
if eventType == event.StateBeeperDisappearingTimer {
|
||||
// TODO remove this debug log at some point
|
||||
zerolog.Ctx(ctx).Debug().
|
||||
Any("content", content).
|
||||
Msg("Sent new disappearing timer event")
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue