Initial move to initial sync. Everything broke :(
This commit is contained in:
parent
2a0145db88
commit
fcd9a932cb
@ -35,6 +35,8 @@ type Session struct {
|
||||
FilterID string
|
||||
Rooms map[string]*rooms.Room
|
||||
PushRules *pushrules.PushRuleset
|
||||
|
||||
InitialSyncDone bool
|
||||
}
|
||||
|
||||
func (config *Config) LoadSession(mxid string) error {
|
||||
@ -50,6 +52,10 @@ func (config *Config) NewSession(mxid string) *Session {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Session) SetInitialSyncDone() {
|
||||
s.InitialSyncDone = true
|
||||
}
|
||||
|
||||
func (s *Session) GetUserID() string {
|
||||
return s.UserID
|
||||
}
|
||||
|
@ -191,7 +191,7 @@ func (c *Container) OnLogin() {
|
||||
c.syncer.OnEventType("m.tag", c.HandleTag)
|
||||
c.client.Syncer = c.syncer
|
||||
|
||||
c.UpdateRoomList()
|
||||
//c.UpdateRoomList()
|
||||
}
|
||||
|
||||
// Start moves the UI to the main view, calls OnLogin() and runs the syncer forever until stopped with Stop()
|
||||
@ -296,6 +296,10 @@ func (c *Container) HandleMembership(evt *gomatrix.Event) {
|
||||
c.processOwnMembershipChange(evt)
|
||||
}
|
||||
|
||||
if !c.config.Session.InitialSyncDone && evt.Timestamp < time.Now().Add(-1*time.Hour).Unix() {
|
||||
return
|
||||
}
|
||||
|
||||
mainView := c.ui.MainView()
|
||||
roomView := mainView.GetRoom(evt.RoomID)
|
||||
if roomView == nil {
|
||||
|
@ -20,16 +20,16 @@ package matrix
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"runtime/debug"
|
||||
"time"
|
||||
|
||||
"maunium.net/go/gomatrix"
|
||||
"maunium.net/go/gomuks/debug"
|
||||
"maunium.net/go/gomuks/matrix/rooms"
|
||||
)
|
||||
|
||||
type SyncerSession interface {
|
||||
GetRoom(id string) *rooms.Room
|
||||
SetInitialSyncDone()
|
||||
GetUserID() string
|
||||
}
|
||||
|
||||
@ -53,16 +53,7 @@ func NewGomuksSyncer(session SyncerSession) *GomuksSyncer {
|
||||
|
||||
// ProcessResponse processes a Matrix sync response.
|
||||
func (s *GomuksSyncer) ProcessResponse(res *gomatrix.RespSync, since string) (err error) {
|
||||
if len(since) == 0 {
|
||||
return
|
||||
}
|
||||
// debug.Print("Processing sync response", since, res)
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
err = fmt.Errorf("ProcessResponse for %s since %s panicked: %s\n%s", s.Session.GetUserID(), since, r, debug.Stack())
|
||||
}
|
||||
}()
|
||||
debug.Print("Processing sync response", since, res)
|
||||
|
||||
s.processSyncEvents(nil, res.Presence.Events, false, false)
|
||||
s.processSyncEvents(nil, res.AccountData.Events, false, false)
|
||||
@ -93,6 +84,9 @@ func (s *GomuksSyncer) ProcessResponse(res *gomatrix.RespSync, since string) (er
|
||||
}
|
||||
}
|
||||
|
||||
if since == "" {
|
||||
s.Session.SetInitialSyncDone()
|
||||
}
|
||||
s.FirstSyncDone = true
|
||||
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user