Fix re-syncing broadcast list recipients
This commit is contained in:
parent
ac2ca08007
commit
6227dfb669
1 changed files with 10 additions and 4 deletions
10
portal.go
10
portal.go
|
@ -369,7 +369,7 @@ func (portal *Portal) kickExtraUsers(participantMap map[whatsapp.JID]bool) {
|
||||||
if ok {
|
if ok {
|
||||||
_, shouldBePresent := participantMap[jid]
|
_, shouldBePresent := participantMap[jid]
|
||||||
if !shouldBePresent {
|
if !shouldBePresent {
|
||||||
_, err := portal.MainIntent().KickUser(portal.MXID, &mautrix.ReqKickUser{
|
_, err = portal.MainIntent().KickUser(portal.MXID, &mautrix.ReqKickUser{
|
||||||
UserID: member,
|
UserID: member,
|
||||||
Reason: "User had left this WhatsApp chat",
|
Reason: "User had left this WhatsApp chat",
|
||||||
})
|
})
|
||||||
|
@ -547,8 +547,14 @@ func (portal *Portal) UpdateMetadata(user *User) bool {
|
||||||
return update
|
return update
|
||||||
} else if portal.IsBroadcastList() {
|
} else if portal.IsBroadcastList() {
|
||||||
update := false
|
update := false
|
||||||
|
broadcastMetadata, err := user.Conn.GetBroadcastMetadata(portal.Key.JID)
|
||||||
|
if err == nil && broadcastMetadata.Status == 200 {
|
||||||
|
portal.SyncBroadcastRecipients(broadcastMetadata)
|
||||||
|
update = portal.UpdateName(broadcastMetadata.Name, "", nil, false) || update
|
||||||
|
} else {
|
||||||
contact, _ := user.Conn.Store.Contacts[portal.Key.JID]
|
contact, _ := user.Conn.Store.Contacts[portal.Key.JID]
|
||||||
update = portal.UpdateName(contact.Name, "", nil, false) || update
|
update = portal.UpdateName(contact.Name, "", nil, false) || update
|
||||||
|
}
|
||||||
update = portal.UpdateTopic(BroadcastTopic, "", nil, false) || update
|
update = portal.UpdateTopic(BroadcastTopic, "", nil, false) || update
|
||||||
return update
|
return update
|
||||||
}
|
}
|
||||||
|
@ -1023,7 +1029,7 @@ func (portal *Portal) CreateMatrixRoom(user *User) error {
|
||||||
} else if portal.IsBroadcastList() {
|
} else if portal.IsBroadcastList() {
|
||||||
var err error
|
var err error
|
||||||
broadcastMetadata, err = user.Conn.GetBroadcastMetadata(portal.Key.JID)
|
broadcastMetadata, err = user.Conn.GetBroadcastMetadata(portal.Key.JID)
|
||||||
if err == nil && broadcastMetadata.Status == 0 {
|
if err == nil && broadcastMetadata.Status == 200 {
|
||||||
portal.Name = broadcastMetadata.Name
|
portal.Name = broadcastMetadata.Name
|
||||||
} else {
|
} else {
|
||||||
contact, _ := user.Conn.Store.Contacts[portal.Key.JID]
|
contact, _ := user.Conn.Store.Contacts[portal.Key.JID]
|
||||||
|
|
Loading…
Reference in a new issue