mirror of
https://dev.narayana.im/narayana/telegabber.git
synced 2026-08-05 12:17:06 +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 := ""
|
groupChatFrom := ""
|
||||||
groupChatTos := []string{}
|
groupChatTos := []string{}
|
||||||
if c.Session.MUC && c.IsGroup(chat) {
|
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)
|
senderId := c.getMessageSenderId(message)
|
||||||
if senderId == 0 {
|
if senderId == 0 {
|
||||||
log.Errorf("Invalid sender id for message %#v", message)
|
log.Errorf("Invalid sender id for message %#v", message)
|
||||||
return
|
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) {
|
if !c.mucCacheHasMember(chatId, senderId) {
|
||||||
chatMember, err := c.client.GetChatMember(&client.GetChatMemberRequest{
|
chatMember, err := c.client.GetChatMember(&client.GetChatMemberRequest{
|
||||||
ChatId: chatId,
|
ChatId: chatId,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue