mirror of
https://dev.narayana.im/narayana/telegabber.git
synced 2026-08-05 04:07:07 +00:00
Extract new MUC members from join messages
This commit is contained in:
parent
8ce5c8373f
commit
cff81d227c
1 changed files with 13 additions and 5 deletions
|
|
@ -1630,17 +1630,25 @@ func (c *Client) ProcessIncomingMessage(chatId int64, message *client.Message) {
|
|||
groupChatFrom := ""
|
||||
groupChatTos := []string{}
|
||||
if c.Session.MUC && c.IsGroup(chat) {
|
||||
if message.Content.MessageContentType() == client.TypeMessageChatDeleteMember {
|
||||
deleteMember, _ := message.Content.(*client.MessageChatDeleteMember)
|
||||
c.mucMemberRolePresence(chatId, deleteMember.UserId, ChatMemberStatusKicked, c.GetMUCNickname(deleteMember.UserId))
|
||||
}
|
||||
|
||||
senderId := c.getMessageSenderId(message)
|
||||
if senderId == 0 {
|
||||
log.Errorf("Invalid sender id for message %#v", message)
|
||||
return
|
||||
}
|
||||
|
||||
switch message.Content.MessageContentType() {
|
||||
case client.TypeMessageChatJoinByLink:
|
||||
c.mucMemberRolePresence(chatId, senderId, ChatMemberStatusUnmuted, c.GetMUCNickname(senderId))
|
||||
case client.TypeMessageChatAddMembers:
|
||||
addMembers, _ := message.Content.(*client.MessageChatAddMembers)
|
||||
for _, memberId := range addMembers.MemberUserIds {
|
||||
c.mucMemberRolePresence(chatId, memberId, ChatMemberStatusUnmuted, c.GetMUCNickname(memberId))
|
||||
}
|
||||
case client.TypeMessageChatDeleteMember:
|
||||
deleteMember, _ := message.Content.(*client.MessageChatDeleteMember)
|
||||
c.mucMemberRolePresence(chatId, deleteMember.UserId, ChatMemberStatusKicked, c.GetMUCNickname(deleteMember.UserId))
|
||||
}
|
||||
|
||||
if !c.mucCacheHasMember(chatId, senderId) {
|
||||
chatMember, err := c.client.GetChatMember(&client.GetChatMemberRequest{
|
||||
ChatId: chatId,
|
||||
|
|
|
|||
Loading…
Reference in a new issue