diff --git a/vdirsyncer/cli.py b/vdirsyncer/cli.py index 1d17117..abe5cb2 100644 --- a/vdirsyncer/cli.py +++ b/vdirsyncer/cli.py @@ -14,10 +14,9 @@ import sys import argvard from .storage import storage_names -from .sync import sync +from .sync import sync, StorageEmpty from .utils import expand_path, parse_options, split_dict -import vdirsyncer.exceptions as exceptions import vdirsyncer.log as log @@ -312,7 +311,7 @@ def sync_collection(config_a, config_b, pair_name, collection, pair_options, conflict_resolution=pair_options.get('conflict_resolution', None), force_delete=status_name in force_delete ) - except exceptions.StorageEmpty as e: + except StorageEmpty as e: side = 'a' if e.empty_storage is a else 'b' storage = e.empty_storage raise CliError( diff --git a/vdirsyncer/storage/http.py b/vdirsyncer/storage/http.py index 5f05736..396994e 100644 --- a/vdirsyncer/storage/http.py +++ b/vdirsyncer/storage/http.py @@ -153,8 +153,9 @@ class HttpStorage(Storage): self._items.clear() for i, item in enumerate(split_collection(r.text.splitlines())): item = Item(u'\n'.join(item), needs_uid=False) - uid = item.uid if item.uid is not None else i - self._items[uid] = item + if item.uid is None: + item.uid = i + self._items[item.uid] = item for uid, item in self._items.items(): yield uid, hashlib.sha256(item.raw.encode('utf-8')).hexdigest()