diff --git a/ankisyncd/sync_app.py b/ankisyncd/sync_app.py index fb1e435..043d7f7 100644 --- a/ankisyncd/sync_app.py +++ b/ankisyncd/sync_app.py @@ -61,11 +61,12 @@ class SyncCollectionHandler(anki.sync.Syncer): for name in note.keys(): if name in version: vs = version.split(name) - # remove potential suffix separators like "-" in "2.1.6-beta2" - version = re.sub("[^0-9]$", "", vs[0]) + version = vs[0] note[name] = int(vs[-1]) - version_int = [int(x) for x in version.split('.')] + # convert the version string, ignoring non-numeric suffixes like in beta versions of Anki + version_nosuffix = re.sub(r'[^0-9.].*$', '', version) + version_int = [int(x) for x in version_nosuffix.split('.')] if client == 'ankidesktop': return version_int < [2, 0, 27] diff --git a/tests/test_sync_app.py b/tests/test_sync_app.py index 19e094c..1877863 100644 --- a/tests/test_sync_app.py +++ b/tests/test_sync_app.py @@ -39,6 +39,7 @@ class SyncCollectionHandlerTest(CollectionTestBase): ','.join(('ankidesktop', '2.0.32', 'lin::')), ','.join(('ankidesktop', '2.1.0', 'lin::')), ','.join(('ankidesktop', '2.1.6-beta2', 'lin::')), + ','.join(('ankidesktop', '2.1.9 (dev)', 'lin::')), ','.join(('ankidroid', '2.2.3', '')), ','.join(('ankidroid', '2.3alpha4', '')), ','.join(('ankidroid', '2.3alpha5', '')),