diff options
Diffstat (limited to 'service/pixelated')
| -rw-r--r-- | service/pixelated/config/__init__.py | 1 | ||||
| -rw-r--r-- | service/pixelated/support/ext_sync.py | 23 | 
2 files changed, 24 insertions, 0 deletions
| diff --git a/service/pixelated/config/__init__.py b/service/pixelated/config/__init__.py index 67552f99..f59d684b 100644 --- a/service/pixelated/config/__init__.py +++ b/service/pixelated/config/__init__.py @@ -36,6 +36,7 @@ import pixelated.support.ext_protobuf  import pixelated.support.ext_sqlcipher  import pixelated.support.ext_esmtp_sender_factory  import pixelated.support.ext_fetch +import pixelated.support.ext_sync  import pixelated.support.ext_keymanager_fetch_key  import pixelated.support.ext_requests_urllib3  from pixelated.support.error_handler import error_handler diff --git a/service/pixelated/support/ext_sync.py b/service/pixelated/support/ext_sync.py new file mode 100644 index 00000000..d35eed3e --- /dev/null +++ b/service/pixelated/support/ext_sync.py @@ -0,0 +1,23 @@ +import leap.soledad.client as client +import logging +import urlparse +from leap.soledad.client.events import ( +    SOLEDAD_DONE_DATA_SYNC, +    signal +) + + +def patched_sync(self, defer_decryption=True): +    if self._db: +        try: +            local_gen = self._db.sync( +                urlparse.urljoin(self.server_url, 'user-%s' % self._uuid), +                creds=self._creds, autocreate=False, +                defer_decryption=defer_decryption) +            signal(SOLEDAD_DONE_DATA_SYNC, self._uuid) +            return local_gen +        except Exception as e: +            client.logger.error("Soledad exception when syncing: %s - %s" % (e.__class__.__name__, e.message)) + + +client.Soledad.sync = patched_sync | 
