diff --git a/pkg/connector/chatinfo.go b/pkg/connector/chatinfo.go index 215aac1b..8edb7f90 100644 --- a/pkg/connector/chatinfo.go +++ b/pkg/connector/chatinfo.go @@ -124,10 +124,7 @@ func (t *TelegramClient) getGroupChatInfo(fullChat *tg.MessagesChatFull, chatID }, CanBackfill: true, ExtraUpdates: func(ctx context.Context, p *bridgev2.Portal) bool { - meta := p.Metadata.(*PortalMetadata) - changed := meta.IsSuperGroup != isMegagroup - meta.IsSuperGroup = isMegagroup - return changed + return p.Metadata.(*PortalMetadata).SetIsSuperGroup(isMegagroup) }, } diff --git a/pkg/connector/metadata.go b/pkg/connector/metadata.go index eaf50aa2..08835031 100644 --- a/pkg/connector/metadata.go +++ b/pkg/connector/metadata.go @@ -34,6 +34,12 @@ type PortalMetadata struct { MessagesTTL int `json:"messages_ttl,omitempty"` } +func (pm *PortalMetadata) SetIsSuperGroup(isSupergroup bool) (changed bool) { + changed = pm.IsSuperGroup != isSupergroup + pm.IsSuperGroup = isSupergroup + return changed +} + type MessageMetadata struct { ContentHash []byte `json:"content_hash,omitempty"` ContentURI id.ContentURIString `json:"content_uri,omitempty"` diff --git a/pkg/connector/sync.go b/pkg/connector/sync.go index 0ba6ff8d..be04058e 100644 --- a/pkg/connector/sync.go +++ b/pkg/connector/sync.go @@ -172,6 +172,9 @@ func (t *TelegramClient) handleDialogs(ctx context.Context, dialogs tg.ModifiedM }, }, }, + ExtraUpdates: func(ctx context.Context, p *bridgev2.Portal) bool { + return p.Metadata.(*PortalMetadata).SetIsSuperGroup(channel.(*tg.Channel).GetMegagroup()) + }, } if !portal.Metadata.(*PortalMetadata).IsSuperGroup { // Add the channel user