chat delete: bridge properly

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-10-09 11:17:51 -06:00
parent 03c7028460
commit 4205047aab
4 changed files with 19 additions and 3 deletions
+1
View File
@@ -192,6 +192,7 @@ func NewTelegramClient(ctx context.Context, tc *TelegramConnector, login *bridge
dispatcher.OnPeerBlocked(func(ctx context.Context, e tg.Entities, update *tg.UpdatePeerBlocked) error {
return client.onPeerBlocked(ctx, update)
})
dispatcher.OnChat(client.onChat)
client.ScopedStore = tc.Store.GetScopedStore(telegramUserID)
+15
View File
@@ -887,3 +887,18 @@ func (t *TelegramClient) onPeerBlocked(ctx context.Context, update *tg.UpdatePee
})
return nil
}
func (t *TelegramClient) onChat(ctx context.Context, e tg.Entities, update *tg.UpdateChat) error {
if _, ok := e.ChatsForbidden[update.ChatID]; ok {
// The chat is now forbidden, we should leave it.
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.ChatDelete{
OnlyForMe: true,
EventMeta: simplevent.EventMeta{
Type: bridgev2.RemoteEventChatDelete,
PortalKey: t.makePortalKeyFromID(ids.PeerTypeChat, update.ChatID),
Sender: t.mySender(),
},
})
}
return nil
}