From 5ec8eab64b336494f3633f12a7dff8a7e39c8222 Mon Sep 17 00:00:00 2001 From: Bohdan Horbeshko Date: Fri, 25 Jul 2025 17:21:38 -0400 Subject: [PATCH] Send 170 status code when joining supergroups (assuming they are public and basic groups are not) --- telegram/utils.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/telegram/utils.go b/telegram/utils.go index 98fbc3c..2426e93 100644 --- a/telegram/utils.go +++ b/telegram/utils.go @@ -695,6 +695,7 @@ func (c *Client) sendMUCStatuses(chatID int64) { } } +// achtung: assuming a locked mucState context func (c *Client) updateMUCOccupants(mucState *MUCState, chatID int64, members []*client.ChatMember) { sChatId := gateway.MUCNODE(chatID) myNickname := "me" @@ -738,6 +739,10 @@ func (c *Client) updateMUCOccupants(mucState *MUCState, chatID int64, members [] } // according to the spec, own occupant entry should be sent the last + selfStatusCodes := []uint16{100, 110, 210} + if chat != nil && chat.Type.ChatTypeType() == client.TypeChatTypeSupergroup { + selfStatusCodes = append(selfStatusCodes, 170) + } c.sendPresence( gateway.SPFrom(sChatId), gateway.SPResource(myNickname), @@ -745,7 +750,7 @@ func (c *Client) updateMUCOccupants(mucState *MUCState, chatID int64, members [] gateway.SPMUCAffiliation(myAffiliation), gateway.SPMUCRole(myRole), gateway.SPMUCJid(myJid), - gateway.SPMUCStatusCodes([]uint16{100, 110, 210}), + gateway.SPMUCStatusCodes(selfStatusCodes), gateway.SPToJids(toJids), ) }