From e03b51fae85cfaf5354ed3fe5415fdeaf9ecf01b Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 4 Dec 2011 14:01:22 +0900 Subject: [PATCH] option to disable media sync --- aqt/main.py | 2 ++ aqt/profiles.py | 1 + aqt/sync.py | 20 ++++++++++++++++---- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/aqt/main.py b/aqt/main.py index e70b3d377..affce0c9f 100755 --- a/aqt/main.py +++ b/aqt/main.py @@ -190,6 +190,8 @@ Are you sure?"""): self.activateWindow() self.raise_() # maybe sync (will load DB) + self.pm.profile['syncMedia'] = False + self.pm.save() self.onSync(auto=True) # skip the reset step; open overview directly self.moveToState("overview") diff --git a/aqt/profiles.py b/aqt/profiles.py index 1f03ae4e1..2a4c52e30 100644 --- a/aqt/profiles.py +++ b/aqt/profiles.py @@ -51,6 +51,7 @@ profileConf = dict( # syncing syncKey=None, + syncMedia=True, proxyHost='', proxyPass='', proxyPort=8080, diff --git a/aqt/sync.py b/aqt/sync.py index 087353693..66e263b6e 100755 --- a/aqt/sync.py +++ b/aqt/sync.py @@ -8,7 +8,7 @@ from anki import Collection from anki.sync import Syncer, RemoteServer, FullSyncer, MediaSyncer, \ RemoteMediaServer from anki.hooks import addHook, removeHook -from aqt.utils import tooltip, askUserDialog +from aqt.utils import tooltip, askUserDialog, showWarning # Sync manager ###################################################################### @@ -40,7 +40,8 @@ class SyncManager(QObject): gc.collect() # create the thread, setup signals and start running t = self.thread = SyncThread( - self.pm.collectionPath(), self.pm.profile['syncKey'], auth) + self.pm.collectionPath(), self.pm.profile['syncKey'], + auth=auth, media=self.pm.profile['syncMedia']) print "created thread" self.connect(t, SIGNAL("event"), self.onEvent) self.mw.progress.start(immediate=True, label=_("Connecting...")) @@ -66,7 +67,8 @@ class SyncManager(QObject): elif evt == "mediaSync": self.mw.progress.update(label="media: "+args[0]) elif evt == "error": - print "error occurred", args[0] + showWarning(_("Syncing failed:\n%s")% + self._rewriteError(args[0])) elif evt == "clockOff": print "clock is wrong" elif evt == "noChanges": @@ -86,6 +88,13 @@ class SyncManager(QObject): else: print "unknown evt", evt + def _rewriteError(self, err): + if "Errno 61" in err: + return _("""\ +Couldn't connect to AnkiWeb. Please check your network connection \ +and try again.""") + return err + def _getUserPass(self): d = QDialog(self.mw) d.setWindowTitle("Anki") @@ -163,11 +172,12 @@ do you want to keep the AnkiWeb version, overwriting the version here?"""), class SyncThread(QThread): - def __init__(self, path, hkey, auth=None): + def __init__(self, path, hkey, auth=None, media=True): QThread.__init__(self) self.path = path self.hkey = hkey self.auth = auth + self.media = media def run(self): self.col = Collection(self.path) @@ -241,6 +251,8 @@ class SyncThread(QThread): self._syncMedia() def _syncMedia(self): + if not self.media: + return self.server = RemoteMediaServer(self.hkey, self.server.con) self.client = MediaSyncer(self.col, self.server) ret = self.client.sync(self.mediaUsn)