mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 00:36:38 -04:00
factor in time difference when determining common point
This commit is contained in:
parent
6860f64f28
commit
400ca9a8a2
1 changed files with 6 additions and 6 deletions
12
anki/sync.py
12
anki/sync.py
|
@ -100,6 +100,7 @@ class SyncTools(object):
|
||||||
self.deck = deck
|
self.deck = deck
|
||||||
self.diffs = {}
|
self.diffs = {}
|
||||||
self.serverExcludedTags = []
|
self.serverExcludedTags = []
|
||||||
|
self.timediff = 0
|
||||||
|
|
||||||
# Control
|
# Control
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
@ -117,18 +118,16 @@ class SyncTools(object):
|
||||||
self.applyPayloadReply(res)
|
self.applyPayloadReply(res)
|
||||||
self.deck.reset()
|
self.deck.reset()
|
||||||
|
|
||||||
def prepareSync(self):
|
def prepareSync(self, timediff):
|
||||||
"Sync setup. True if sync needed."
|
"Sync setup. True if sync needed."
|
||||||
self.localTime = self.modified()
|
self.localTime = self.modified()
|
||||||
self.remoteTime = self.server.modified()
|
self.remoteTime = self.server.modified()
|
||||||
if self.localTime == self.remoteTime:
|
if self.localTime == self.remoteTime:
|
||||||
return False
|
return False
|
||||||
l = self._lastSync(); r = self.server._lastSync()
|
l = self._lastSync(); r = self.server._lastSync()
|
||||||
# set lastSync to the lower of the two sides
|
# set lastSync to the lower of the two sides, and account for slow
|
||||||
if l != r:
|
# clocks & assume it took up to 10 seconds for the reply to arrive
|
||||||
self.deck.lastSync = min(l, r)
|
self.deck.lastSync = min(l, r) - timediff - 10
|
||||||
else:
|
|
||||||
self.deck.lastSync = l
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def summaries(self):
|
def summaries(self):
|
||||||
|
@ -1092,6 +1091,7 @@ class HttpSyncServerProxy(SyncServer):
|
||||||
raise SyncError(type="authFailed", status=d['status'])
|
raise SyncError(type="authFailed", status=d['status'])
|
||||||
self.decks = d['decks']
|
self.decks = d['decks']
|
||||||
self.timestamp = d['timestamp']
|
self.timestamp = d['timestamp']
|
||||||
|
self.timediff = abs(self.timestamp - time.time())
|
||||||
|
|
||||||
def hasDeck(self, deckName):
|
def hasDeck(self, deckName):
|
||||||
self.connect()
|
self.connect()
|
||||||
|
|
Loading…
Reference in a new issue