diff --git a/README.md b/README.md index 965de5c..7ce5d98 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ like ankisyncd.py) containing the code below and put it in ~/Anki/addons. import anki.sync anki.sync.SYNC_BASE = 'http://127.0.0.1:27701/' - anki.sync.SYNC_MEDIA_BASE = 'http://127.0.0.1:27701/mediasync/' + anki.sync.SYNC_MEDIA_BASE = 'http://127.0.0.1:27701/msync/' Replace 127.0.0.1 with the IP address or the domain name of your server if ankisyncd is not running on the same machine as Anki. diff --git a/ankisyncd.conf b/ankisyncd.conf index bd5a937..b0c53eb 100644 --- a/ankisyncd.conf +++ b/ankisyncd.conf @@ -3,5 +3,5 @@ host = 127.0.0.1 port = 27701 data_root = ./collections base_url = /sync/ -base_media_url = /mediasync/ +base_media_url = /msync/ auth_db_path = ./auth.db diff --git a/ankisyncd/sync_app.py b/ankisyncd/sync_app.py index c5a5551..982f933 100644 --- a/ankisyncd/sync_app.py +++ b/ankisyncd/sync_app.py @@ -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):