1
0
Fork 0
forked from Mirrors/gomuks

Attempt new headless sync implementation

This commit is contained in:
FIGBERT 2023-09-18 00:43:09 -07:00
parent c3920a41b6
commit 05ccf81e57
No known key found for this signature in database
GPG key ID: 67F1598D607A844B
2 changed files with 15 additions and 20 deletions

View file

@ -1,7 +1,6 @@
package headless package headless
import ( import (
"context"
"errors" "errors"
"fmt" "fmt"
"os" "os"
@ -68,25 +67,17 @@ func Init(conf Config, updates chan fmt.Stringer) error {
// sync // sync
updates <- beginningSync{} updates <- beginningSync{}
resp, err := gmx.Matrix().Client().FullSyncRequest(mautrix.ReqSync{
Timeout: 30000,
Since: "",
FilterID: "",
FullState: true,
SetPresence: gmx.Matrix().Client().SyncPresence,
Context: context.Background(),
StreamResponse: true,
})
if err != nil {
return err
}
updates <- fetchedSyncData{}
gmx.Matrix().(*matrix.Container).InitSyncer() gmx.Matrix().(*matrix.Container).InitSyncer()
updates <- processingSync{} syncloop:
err = gmx.Matrix().(*matrix.Container).ProcessSyncResponse(resp, "") for {
if err != nil { select {
return err case <-gmx.Matrix().(*matrix.Container).StopChannel():
break syncloop
default:
if err := gmx.Matrix().Client().Sync(); err != nil {
return err
}
}
} }
updates <- syncFinished{} updates <- syncFinished{}

View file

@ -350,6 +350,10 @@ func (c *Container) Logout() {
c.ui.OnLogout() c.ui.OnLogout()
} }
func (c *Container) StopChannel() chan bool {
return c.stop
}
// Stop stops the Matrix syncer. // Stop stops the Matrix syncer.
func (c *Container) Stop() { func (c *Container) Stop() {
if c.running { if c.running {
@ -469,7 +473,7 @@ func (c *Container) InitSyncer() {
} }
if c.headless { if c.headless {
c.syncer.FirstDoneCallback = func() { c.syncer.FirstDoneCallback = func() {
c.Stop() c.stop <- true
} }
} }