Fix syncing with AnkiDroid
This commit is contained in:
@@ -22,6 +22,7 @@ from webob import Response
|
||||
|
||||
import os
|
||||
import hashlib
|
||||
import string
|
||||
|
||||
import ankisyncd
|
||||
|
||||
@@ -64,10 +65,12 @@ class SyncCollectionHandler(Syncer):
|
||||
version = '2.0.12'
|
||||
platform = 'unknown'
|
||||
|
||||
version_int = [int(x) for x in version.split('.')]
|
||||
version_int = [ int(str(x).translate(None, string.ascii_letters))
|
||||
for x in version.split('.') ]
|
||||
|
||||
# Some insanity added in Anki 2.0.13
|
||||
if client == 'ankidesktop' and version_int[0] >= 2 and version_int[1] >= 0 and version_int[2] >= 13:
|
||||
if (client == 'ankidroid' and version_int[0] >=2 and version_int[1] >= 3) \
|
||||
or (client == 'ankidesktop' and version_int[0] >= 2 and version_int[1] >= 0 and version_int[2] >= 13):
|
||||
return {
|
||||
'scm': self.col.scm,
|
||||
'ts': intTime(),
|
||||
@@ -87,7 +90,7 @@ class SyncMediaHandler(MediaSyncer):
|
||||
MediaSyncer.__init__(self, col)
|
||||
|
||||
def begin(self, skey):
|
||||
return json.dumps({'data':{'sk':skey, 'usn':self.col._usn}, 'err':None})
|
||||
return json.dumps({'data':{'sk':skey, 'usn':self.col._usn}, 'err':''})
|
||||
|
||||
def uploadChanges(self, data, skey):
|
||||
"""Adds files based from ZIP file data and returns the usn."""
|
||||
@@ -146,7 +149,7 @@ class SyncMediaHandler(MediaSyncer):
|
||||
if finished:
|
||||
self.col.media.syncMod()
|
||||
|
||||
return json.dumps({'data':[processedCnt, usn], 'err':None})
|
||||
return json.dumps({'data':[processedCnt, usn], 'err':''})
|
||||
|
||||
def downloadFiles(self, files):
|
||||
import zipfile
|
||||
@@ -179,7 +182,7 @@ class SyncMediaHandler(MediaSyncer):
|
||||
for fname,mtime,csum, in self.col.media.db.execute("select fname,mtime,csum from media"):
|
||||
result.append([fname, usn, csum])
|
||||
|
||||
return json.dumps({'data':result, 'err':None})
|
||||
return json.dumps({'data':result, 'err':''})
|
||||
|
||||
def mediaSanity(self, local=None):
|
||||
if self.col.media.mediaCount() == local:
|
||||
@@ -187,7 +190,7 @@ class SyncMediaHandler(MediaSyncer):
|
||||
else:
|
||||
result = "FAILED"
|
||||
|
||||
return json.dumps({'data':result, 'err':None})
|
||||
return json.dumps({'data':result, 'err':''})
|
||||
|
||||
class SyncUserSession(object):
|
||||
def __init__(self, name, path, collection_manager, setup_new_collection=None):
|
||||
|
||||
Reference in New Issue
Block a user