diff options
author | Alex Auvolat <alex@adnab.me> | 2020-02-28 12:16:59 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2020-02-28 12:16:59 +0100 |
commit | 5398e9fc0f4e7b971221b80c490fea8c24287081 (patch) | |
tree | 27ead6a43b97c637184c30cc233cd9a14b5405d4 /account.go | |
parent | d03091dd01af40d125f3a6b47b076f008a7123d7 (diff) | |
download | easybridge-5398e9fc0f4e7b971221b80c490fea8c24287081.tar.gz easybridge-5398e9fc0f4e7b971221b80c490fea8c24287081.zip |
Handle matrix left events correctly (hopefully)
Diffstat (limited to 'account.go')
-rw-r--r-- | account.go | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -205,6 +205,15 @@ func (a *Account) addAutojoin(roomId RoomID) { }).FirstOrCreate(&entry) } +func (a *Account) delAutojoin(roomId RoomID) { + db.Where(&DbJoinedRoom{ + MxUserID: a.MatrixUser, + Protocol: a.Protocol, + AccountName: a.AccountName, + RoomID: roomId, + }).Delete(&DbJoinedRoom{}) +} + // ---- Begin event handlers ---- func (a *Account) Joined(roomId RoomID) { @@ -212,13 +221,13 @@ func (a *Account) Joined(roomId RoomID) { if err != nil { a.ezbrMessagef("Dropping Account.Joined %s: %s", roomId, err.Error()) } - - a.addAutojoin(roomId) } func (a *Account) joinedInternal(roomId RoomID) error { a.JoinedRooms[roomId] = true + a.addAutojoin(roomId) + mx_room_id, err := dbGetMxRoom(a.Protocol, roomId) if err != nil { return err @@ -240,18 +249,13 @@ func (a *Account) Left(roomId RoomID) { if err != nil { a.ezbrMessagef("Dropping Account.Left %s: %s", roomId, err.Error()) } - - db.Where(&DbJoinedRoom{ - MxUserID: a.MatrixUser, - Protocol: a.Protocol, - AccountName: a.AccountName, - RoomID: roomId, - }).Delete(&DbJoinedRoom{}) } func (a *Account) leftInternal(roomId RoomID) error { delete(a.JoinedRooms, roomId) + a.delAutojoin(roomId) + mx_room_id, err := dbGetMxRoom(a.Protocol, roomId) if err != nil { return err |