diff --git a/plugin/__init__.py b/plugin/__init__.py index 031ba30..d996b36 100644 --- a/plugin/__init__.py +++ b/plugin/__init__.py @@ -488,7 +488,15 @@ class AnkiConnect: @util.api() def sync(self): - self.window().onSync() + mw = self.window() + auth = mw.pm.sync_auth() + if not auth: + raise Exception("sync: auth not configured") + out = mw.col.sync_collection(auth, mw.pm.media_syncing_enabled()) + accepted_sync_statuses = [out.NO_CHANGES, out.NORMAL_SYNC] + if out.required not in accepted_sync_statuses: + raise Exception(f"Sync status {out.required} not one of {accepted_sync_statuses} - see SyncCollectionResponse.ChangesRequired for list of sync statuses: https://github.com/ankitects/anki/blob/e41c4573d789afe8b020fab5d9d1eede50c3fa3d/proto/anki/sync.proto#L57-L65") + mw.onSync() @util.api()