mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
ensure order of received cards
This commit is contained in:
parent
ef9f6bf051
commit
e69522f120
3 changed files with 8 additions and 6 deletions
|
@ -1176,7 +1176,8 @@ where id = :id""" % table, pending)
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
n = os.path.splitext(os.path.basename(self.path))[0]
|
n = os.path.splitext(os.path.basename(self.path))[0]
|
||||||
n = re.sub("[^-A-Za-z0-9_+<>[]() ]", "", n)
|
assert '/' not in n
|
||||||
|
assert '\\' not in n
|
||||||
return n
|
return n
|
||||||
|
|
||||||
# Media
|
# Media
|
||||||
|
|
10
anki/sync.py
10
anki/sync.py
|
@ -755,7 +755,7 @@ where media.id in %s""" % sids, now=time.time())
|
||||||
def getOneWayCards(self, ids):
|
def getOneWayCards(self, ids):
|
||||||
"The minimum information necessary to generate one way cards."
|
"The minimum information necessary to generate one way cards."
|
||||||
return self.deck.s.all(
|
return self.deck.s.all(
|
||||||
"select id, factId, cardModelId, ordinal from cards "
|
"select id, factId, cardModelId, ordinal, created from cards "
|
||||||
"where id in %s" % ids2str(ids))
|
"where id in %s" % ids2str(ids))
|
||||||
|
|
||||||
def updateOneWayCards(self, cards):
|
def updateOneWayCards(self, cards):
|
||||||
|
@ -763,7 +763,7 @@ where media.id in %s""" % sids, now=time.time())
|
||||||
return
|
return
|
||||||
t = time.time()
|
t = time.time()
|
||||||
dlist = [{'id': c[0], 'factId': c[1], 'cardModelId': c[2],
|
dlist = [{'id': c[0], 'factId': c[1], 'cardModelId': c[2],
|
||||||
'ordinal': c[3], 't': t} for c in cards]
|
'ordinal': c[3], 'created': c[4], 't': t} for c in cards]
|
||||||
# add any missing cards
|
# add any missing cards
|
||||||
self.deck.s.statements("""
|
self.deck.s.statements("""
|
||||||
insert or ignore into cards
|
insert or ignore into cards
|
||||||
|
@ -775,8 +775,8 @@ matureEase1, matureEase2, matureEase3, matureEase4, yesCount, noCount,
|
||||||
question, answer, lastFactor, spaceUntil, isDue, type, combinedDue,
|
question, answer, lastFactor, spaceUntil, isDue, type, combinedDue,
|
||||||
relativeDelay)
|
relativeDelay)
|
||||||
values
|
values
|
||||||
(:id, :factId, :cardModelId, :t, :t, "", :ordinal,
|
(:id, :factId, :cardModelId, :created, :t, "", :ordinal,
|
||||||
1, 0.001, 0, :t, 0, 2.5,
|
1, 0.001, 0, :created, 0, 2.5,
|
||||||
0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0,
|
||||||
|
@ -952,7 +952,7 @@ class HttpSyncServer(SyncServer):
|
||||||
return self.stuff(SyncServer.genOneWayPayload(self,
|
return self.stuff(SyncServer.genOneWayPayload(self,
|
||||||
self.unstuff(payload)))
|
self.unstuff(payload)))
|
||||||
|
|
||||||
def getDecks(self, libanki, client):
|
def getDecks(self, libanki, client, sources):
|
||||||
return self.stuff({
|
return self.stuff({
|
||||||
"status": "OK",
|
"status": "OK",
|
||||||
"decks": self.decks,
|
"decks": self.decks,
|
||||||
|
|
|
@ -248,6 +248,7 @@ def test_localsync_media():
|
||||||
def test_oneway_simple():
|
def test_oneway_simple():
|
||||||
assert deck1.s.scalar("select count(1) from cards") == 2
|
assert deck1.s.scalar("select count(1) from cards") == 2
|
||||||
assert deck2.s.scalar("select count(1) from cards") == 2
|
assert deck2.s.scalar("select count(1) from cards") == 2
|
||||||
|
server.deckName = "dummy"
|
||||||
client.syncOneWay(0)
|
client.syncOneWay(0)
|
||||||
assert deck1.s.scalar("select count(1) from cards") == 4
|
assert deck1.s.scalar("select count(1) from cards") == 4
|
||||||
assert deck2.s.scalar("select count(1) from cards") == 2
|
assert deck2.s.scalar("select count(1) from cards") == 2
|
||||||
|
|
Loading…
Reference in a new issue