mirror of https://github.com/matrix-org/gomatrix
Handle leave events
This commit is contained in:
parent
f683c3da34
commit
7e21d59dca
10
responses.go
10
responses.go
|
@ -125,6 +125,16 @@ type RespSync struct {
|
||||||
Events []Event `json:"events"`
|
Events []Event `json:"events"`
|
||||||
} `json:"presence"`
|
} `json:"presence"`
|
||||||
Rooms struct {
|
Rooms struct {
|
||||||
|
Leave map[string]struct {
|
||||||
|
State struct {
|
||||||
|
Events []Event `json:"events"`
|
||||||
|
} `json:"state"`
|
||||||
|
Timeline struct {
|
||||||
|
Events []Event `json:"events"`
|
||||||
|
Limited bool `json:"limited"`
|
||||||
|
PrevBatch string `json:"prev_batch"`
|
||||||
|
} `json:"timeline"`
|
||||||
|
} `json:"leave"`
|
||||||
Join map[string]struct {
|
Join map[string]struct {
|
||||||
State struct {
|
State struct {
|
||||||
Events []Event `json:"events"`
|
Events []Event `json:"events"`
|
||||||
|
|
8
sync.go
8
sync.go
|
@ -73,6 +73,14 @@ func (s *DefaultSyncer) ProcessResponse(res *RespSync, since string) (err error)
|
||||||
s.notifyListeners(&event)
|
s.notifyListeners(&event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for roomID, roomData := range res.Rooms.Leave {
|
||||||
|
room := s.getOrCreateRoom(roomID)
|
||||||
|
for _, event := range roomData.Timeline.Events {
|
||||||
|
event.RoomID = roomID
|
||||||
|
room.UpdateState(&event)
|
||||||
|
s.notifyListeners(&event)
|
||||||
|
}
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue