aboutsummaryrefslogtreecommitdiff
path: root/account.go
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2020-02-28 12:16:59 +0100
committerAlex Auvolat <alex@adnab.me>2020-02-28 12:16:59 +0100
commit5398e9fc0f4e7b971221b80c490fea8c24287081 (patch)
tree27ead6a43b97c637184c30cc233cd9a14b5405d4 /account.go
parentd03091dd01af40d125f3a6b47b076f008a7123d7 (diff)
downloadeasybridge-5398e9fc0f4e7b971221b80c490fea8c24287081.tar.gz
easybridge-5398e9fc0f4e7b971221b80c490fea8c24287081.zip
Handle matrix left events correctly (hopefully)
Diffstat (limited to 'account.go')
-rw-r--r--account.go22
1 files changed, 13 insertions, 9 deletions
diff --git a/account.go b/account.go
index 59809e7..3ed1a61 100644
--- a/account.go
+++ b/account.go
@@ -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