forked from MirrorHub/mautrix-whatsapp
Merge pull request #476 from mautrix/start-loops-after-connected
history sync: only start after the user is connected
This commit is contained in:
commit
b81a6c0a3a
1 changed files with 13 additions and 10 deletions
23
user.go
23
user.go
|
@ -68,6 +68,7 @@ type User struct {
|
||||||
prevBridgeStatus *BridgeState
|
prevBridgeStatus *BridgeState
|
||||||
lastPresence types.Presence
|
lastPresence types.Presence
|
||||||
|
|
||||||
|
historySyncLoopsStarted bool
|
||||||
spaceMembershipChecked bool
|
spaceMembershipChecked bool
|
||||||
lastPhoneOfflineWarning time.Time
|
lastPhoneOfflineWarning time.Time
|
||||||
|
|
||||||
|
@ -188,16 +189,6 @@ func (bridge *Bridge) NewUser(dbUser *database.User) *User {
|
||||||
user.RelayWhitelisted = user.bridge.Config.Bridge.Permissions.IsRelayWhitelisted(user.MXID)
|
user.RelayWhitelisted = user.bridge.Config.Bridge.Permissions.IsRelayWhitelisted(user.MXID)
|
||||||
user.Whitelisted = user.bridge.Config.Bridge.Permissions.IsWhitelisted(user.MXID)
|
user.Whitelisted = user.bridge.Config.Bridge.Permissions.IsWhitelisted(user.MXID)
|
||||||
user.Admin = user.bridge.Config.Bridge.Permissions.IsAdmin(user.MXID)
|
user.Admin = user.bridge.Config.Bridge.Permissions.IsAdmin(user.MXID)
|
||||||
if user.bridge.Config.Bridge.HistorySync.Backfill {
|
|
||||||
go user.handleHistorySyncsLoop()
|
|
||||||
|
|
||||||
if user.bridge.Config.Bridge.HistorySync.BackfillMedia && user.bridge.Config.Bridge.HistorySync.EnqueueBackfillMediaNextStart {
|
|
||||||
var priorityCounter int
|
|
||||||
for _, portal := range user.bridge.GetAllPortalsForUser(user.MXID) {
|
|
||||||
user.EnqueueMediaBackfills(portal, &priorityCounter)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return user
|
return user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -575,6 +566,18 @@ func (user *User) HandleEvent(event interface{}) {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
go user.tryAutomaticDoublePuppeting()
|
go user.tryAutomaticDoublePuppeting()
|
||||||
|
|
||||||
|
if user.bridge.Config.Bridge.HistorySync.Backfill && !user.historySyncLoopsStarted {
|
||||||
|
go user.handleHistorySyncsLoop()
|
||||||
|
user.historySyncLoopsStarted = true
|
||||||
|
|
||||||
|
if user.bridge.Config.Bridge.HistorySync.BackfillMedia && user.bridge.Config.Bridge.HistorySync.EnqueueBackfillMediaNextStart {
|
||||||
|
var priorityCounter int
|
||||||
|
for _, portal := range user.bridge.GetAllPortalsForUser(user.MXID) {
|
||||||
|
user.EnqueueMediaBackfills(portal, &priorityCounter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
case *events.OfflineSyncPreview:
|
case *events.OfflineSyncPreview:
|
||||||
user.log.Infofln("Server says it's going to send %d messages and %d receipts that were missed during downtime", v.Messages, v.Receipts)
|
user.log.Infofln("Server says it's going to send %d messages and %d receipts that were missed during downtime", v.Messages, v.Receipts)
|
||||||
go user.sendBridgeState(BridgeState{
|
go user.sendBridgeState(BridgeState{
|
||||||
|
|
Loading…
Reference in a new issue