mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 16:26:40 -04:00
revlog timestamp is ms based; should fetch facts/cards by mod not id
This commit is contained in:
parent
af2b2373b9
commit
85a2bb6193
2 changed files with 20 additions and 7 deletions
|
@ -184,7 +184,7 @@ class Syncer(object):
|
||||||
|
|
||||||
def getRevlog(self):
|
def getRevlog(self):
|
||||||
r = self.deck.db.all("select * from revlog where id > ? limit ?",
|
r = self.deck.db.all("select * from revlog where id > ? limit ?",
|
||||||
self.ls, self.MAX_REVLOG)
|
self.ls*1000, self.MAX_REVLOG)
|
||||||
if len(r) == self.MAX_REVLOG:
|
if len(r) == self.MAX_REVLOG:
|
||||||
raise SyncTooLarge
|
raise SyncTooLarge
|
||||||
return r
|
return r
|
||||||
|
@ -198,7 +198,7 @@ class Syncer(object):
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def getFacts(self):
|
def getFacts(self):
|
||||||
f = self.deck.db.all("select * from facts where id > ? limit ?",
|
f = self.deck.db.all("select * from facts where mod > ? limit ?",
|
||||||
self.ls, self.MAX_FACTS)
|
self.ls, self.MAX_FACTS)
|
||||||
if len(f) == self.MAX_FACTS:
|
if len(f) == self.MAX_FACTS:
|
||||||
raise SyncTooLarge
|
raise SyncTooLarge
|
||||||
|
@ -225,7 +225,7 @@ class Syncer(object):
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def getCards(self):
|
def getCards(self):
|
||||||
c = self.deck.db.all("select * from cards where id > ? limit ?",
|
c = self.deck.db.all("select * from cards where mod > ? limit ?",
|
||||||
self.ls, self.MAX_CARDS)
|
self.ls, self.MAX_CARDS)
|
||||||
if len(c) == self.MAX_CARDS:
|
if len(c) == self.MAX_CARDS:
|
||||||
raise SyncTooLarge
|
raise SyncTooLarge
|
||||||
|
|
|
@ -11,8 +11,6 @@ from anki.facts import Fact
|
||||||
from anki.cards import Card
|
from anki.cards import Card
|
||||||
from tests.shared import getEmptyDeck
|
from tests.shared import getEmptyDeck
|
||||||
|
|
||||||
#import psyco; psyco.profile()
|
|
||||||
|
|
||||||
# Local tests
|
# Local tests
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
|
@ -24,8 +22,8 @@ server=None
|
||||||
def setup_basic(loadDecks=None):
|
def setup_basic(loadDecks=None):
|
||||||
global deck1, deck2, client, server
|
global deck1, deck2, client, server
|
||||||
if loadDecks:
|
if loadDecks:
|
||||||
deck1 = Deck(loadDecks[0], backup=False)
|
deck1 = Deck(loadDecks[0])
|
||||||
deck2 = Deck(loadDecks[1], backup=False)
|
deck2 = Deck(loadDecks[1])
|
||||||
else:
|
else:
|
||||||
deck1 = getEmptyDeck()
|
deck1 = getEmptyDeck()
|
||||||
# add a fact to deck 1
|
# add a fact to deck 1
|
||||||
|
@ -126,3 +124,18 @@ def test_facts():
|
||||||
assert client.sync() == "success"
|
assert client.sync() == "success"
|
||||||
assert not deck1.db.scalar("select 1 from facts where id = ?", fid)
|
assert not deck1.db.scalar("select 1 from facts where id = ?", fid)
|
||||||
assert not deck2.db.scalar("select 1 from facts where id = ?", fid)
|
assert not deck2.db.scalar("select 1 from facts where id = ?", fid)
|
||||||
|
|
||||||
|
def _test_speed():
|
||||||
|
t = time.time()
|
||||||
|
setup_basic([os.path.expanduser("~/rapid.anki"),
|
||||||
|
os.path.expanduser("~/rapid2.anki")])
|
||||||
|
print "load %d" % ((time.time() - t)*1000); t = time.time()
|
||||||
|
deck2.save(mod=intTime()+1)
|
||||||
|
# 3000 revlog entries: ~128ms
|
||||||
|
# 3000 cards: ~200ms
|
||||||
|
# 3000 facts: ~500ms
|
||||||
|
assert client.sync() != "fullSync"
|
||||||
|
print "sync %d" % ((time.time() - t)*1000); t = time.time()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue