From 85c9b85c1fe84c5161c39449651292b9899e2e1c Mon Sep 17 00:00:00 2001 From: flan Date: Wed, 1 Nov 2017 17:43:47 +0100 Subject: [PATCH] Make _old_client() support alphas/betas --- ankisyncd/sync_app.py | 19 +++++++++++++++---- tests/test_sync_app.py | 4 ++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ankisyncd/sync_app.py b/ankisyncd/sync_app.py index f5a33b7..e3a7e80 100644 --- a/ankisyncd/sync_app.py +++ b/ankisyncd/sync_app.py @@ -57,12 +57,23 @@ class SyncCollectionHandler(Syncer): if not cv: return False + note = {"alpha": 0, "beta": 0} client, version, platform = cv.split(',') - version_int = [ int(str(x).translate(None, string.ascii_letters)) - for x in version.split('.') ] - return (client == 'ankidroid' and version_int < [2, 3, 0]) \ - or (client == 'ankidesktop' and version_int < [2, 0, 27]) + for name in note.keys(): + if name in version: + vs = version.split(name) + version = vs[0] + note[name] = int(vs[-1]) + + version_int = [int(x) for x in version.split('.')] + + if client == 'ankidesktop': + return version_int < [2, 0, 27] + elif client == 'ankidroid': + return version_int < [2, 2, 3] or (version_int == [2, 3] and note["alpha"] < 4) + else: # unknown client, assume current version + return False def meta(self): # Make sure the media database is open! diff --git a/tests/test_sync_app.py b/tests/test_sync_app.py index 6641505..4520592 100644 --- a/tests/test_sync_app.py +++ b/tests/test_sync_app.py @@ -27,8 +27,8 @@ class SyncCollectionHandlerTest(CollectionTestBase): ','.join(('ankidesktop', '2.0.26', 'lin::')), ','.join(('ankidroid', '2.1', '')), ','.join(('ankidroid', '2.2', '')), - #','.join(('ankidroid', '2.2.2', '')), - #','.join(('ankidroid', '2.3alpha3', '')), + ','.join(('ankidroid', '2.2.2', '')), + ','.join(('ankidroid', '2.3alpha3', '')), ) current = (