No description
Find a file
Markus Unterwaditzer 48eb2a7165 Update README.md
2014-02-28 14:44:08 +01:00
vdirsyncer More fixes 2014-02-28 14:44:08 +01:00
.gitignore Add coverage.py to gitignore 2014-02-28 14:44:07 +01:00
LICENSE Copyright headers, more docstrings 2014-02-28 14:44:07 +01:00
README.md Update README.md 2014-02-28 14:44:08 +01:00
setup.cfg Copyright headers, more docstrings 2014-02-28 14:44:07 +01:00
setup.py Copyright headers, more docstrings 2014-02-28 14:44:07 +01:00

This is work-in-progress.

A basic syncronization utility for vdir. Should be able to sync both CardDAV and CalDAV in the end.

A little bit about the code architecture

There are storage classes which control the access to one vdir-collection and offer basic CRUD-ish methods for modifying those collections. The exact interface is described in vdirsyncer.storage.base, the Storage class should be a superclass of all storage classes.

One function in vdirsyncer.sync can then be called on two instances of Storage to syncronize them, due to the abstract API storage classes are implementing, the two given instances don't have to be of the same exact type. This allows us not only to syncronize a local vdir with a CalDAV server, but also syncronize two CalDAV servers or two local vdirs.

Rough list of things that need to be done

  • implement CalDAVStorage and CardDAVStorage

    While events generally have to be referenced by href, there's an example in the CalDAV RFC (Ctrl+F for "by UID") on how to get events by UID. In the worst case we have to find out the href through that every time we want to delete or update an event. hopefully this is no longer a real concern due to the rewrite of the storage API with commit 4b92442. Probably it's just going to be copy-and-paste from khal.

  • finish the CLI and decide on a config format

  • moar tests

  • conflict resolution

  • Everywhere you find TODO in the sourcecode