mute: sync from Telegram -> Matrix

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-10-01 15:47:00 -06:00
parent 6f4e32fad0
commit 52fab81e55
3 changed files with 38 additions and 0 deletions
+25
View File
@@ -11,6 +11,7 @@ import (
"github.com/gotd/td/tg"
"github.com/gotd/td/tgerr"
"github.com/rs/zerolog"
"go.mau.fi/util/ptr"
"maunium.net/go/mautrix/bridge/status"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/database"
@@ -717,3 +718,27 @@ func (t *TelegramClient) transferEmojisToMatrix(ctx context.Context, customEmoji
}
return
}
func (t *TelegramClient) onNotifySettings(ctx context.Context, update *tg.UpdateNotifySettings) error {
if update.Peer.TypeID() != tg.NotifyPeerTypeID {
return fmt.Errorf("unsupported peer type %s", update.Peer.TypeName())
}
var mutedUntil *time.Time
if mu, ok := update.NotifySettings.GetMuteUntil(); ok {
mutedUntil = ptr.Ptr(time.Unix(int64(mu), 0))
} else {
mutedUntil = &bridgev2.Unmuted
}
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.ChatResync{
ChatInfo: &bridgev2.ChatInfo{UserLocal: &bridgev2.UserLocalPortalInfo{
MutedUntil: mutedUntil,
}},
EventMeta: simplevent.EventMeta{
Type: bridgev2.RemoteEventChatResync,
PortalKey: t.makePortalKeyFromPeer(update.Peer.(*tg.NotifyPeer).Peer),
},
})
return nil
}