Commit graph

367 commits

Author SHA1 Message Date
Markus Unterwaditzer
a0760ca171 Invalid hrefs technically don't exist 2014-12-06 16:30:40 +01:00
Markus Unterwaditzer
772f745832 get_multi now ignores duplicate input 2014-12-06 14:08:10 +01:00
Markus Unterwaditzer
d14fcbc59a Fix bug with DAV href generation 2014-12-06 12:12:56 +01:00
Markus Unterwaditzer
5ebc9eaecb Remove leftover assertion 2014-12-06 12:12:56 +01:00
Markus Unterwaditzer
24b492c610 Fix item_types parser 2014-12-06 10:21:12 +01:00
Markus Unterwaditzer
448dc9b6b7 Fix logging output 2014-12-06 10:09:56 +01:00
Markus Unterwaditzer
2be78545fd Fix a bug in DAV discovery
Server might return relative URLs (iCloud does)
2014-12-05 15:39:20 +01:00
Markus Unterwaditzer
1efb00b5f7 Version 0.3.2 2014-12-03 17:32:24 +01:00
Markus Unterwaditzer
08c07c4be4 New config format
See #141

Basically this tries to parse config values with JSON, if that fails,
the value is interpreted as string.

I'd greatly appreciate feedback on this and #141
2014-12-02 21:03:06 +01:00
Markus Unterwaditzer
c234bce656 "A from B" => "B/A" 2014-12-01 00:11:05 +01:00
Markus Unterwaditzer
29f9a10766 Skip non-directories during filesystem discovery 2014-11-30 16:02:01 +01:00
Markus Unterwaditzer
bd235df3c8 Actually fix #138 2014-11-27 14:01:44 +01:00
Markus Unterwaditzer
069f5dfa89 Deal with Radicale 0.7
Fix #138
2014-11-26 14:19:46 +01:00
Markus Unterwaditzer
37c2467f59 Stricten testsuite 2014-11-25 15:17:51 +01:00
Markus Unterwaditzer
29cf9e0b50 Version 0.3.1 2014-11-24 20:57:21 +01:00
Markus Unterwaditzer
0f5fdd6d39 add comment 2014-11-20 13:52:24 +01:00
Markus Unterwaditzer
df305fc14e Fix style 2014-11-03 14:23:54 +01:00
Markus Unterwaditzer
6bf0df4d89 Use safe_write for statuses 2014-11-02 23:34:05 +01:00
Markus Unterwaditzer
3fccfe19e7 Enforce alphabetic import order 2014-10-29 23:03:58 +01:00
Markus Unterwaditzer
9d3a9611b2 Fix typo 2014-10-21 19:35:49 +02:00
Markus Unterwaditzer
4857292b5c New testcases for vobject joining 2014-10-21 18:26:02 +02:00
Markus Unterwaditzer
6bd5bf7422 Simplify sync code
Before deletion, vdirsyncer will now check if the item changed on the
other side, and induce a re-upload if the item did change.

Because of this behavior it is now possible to remove the special-casing
if no status is available.

Fix #128
2014-10-20 17:42:45 +02:00
Markus Unterwaditzer
f22548000b Fix another typo and add test assertion 2014-10-19 18:36:09 +02:00
Markus Unterwaditzer
c5c5208662 Bugfix: http storage: Actually respect useragent 2014-10-19 18:26:55 +02:00
Markus Unterwaditzer
5a26721905 Fix typo 2014-10-19 15:49:58 +02:00
Markus Unterwaditzer
75bd145507 Improvements to singlefile storage 2014-10-19 15:29:42 +02:00
Markus Unterwaditzer
c759069c0d Add github issue link role 2014-10-19 13:48:09 +02:00
Markus Unterwaditzer
214756f28c Change context manager to normal function 2014-10-18 17:44:05 +02:00
Markus Unterwaditzer
aba0a40fbc Move exception handling into context manager 2014-10-16 21:40:49 +02:00
Markus Unterwaditzer
29d80b7be0 Stop using multiprocessing.dummy.Pool
- Custom job queue with workers based on threads.
- Collection discovery is now done in a separate thread. Due to the
  gained flexibility, we could do the sync actions in separate threads
  too?
- The processes parameter has been removed, the related new option is
  only available on the CLI.
2014-10-16 21:40:49 +02:00
Markus Unterwaditzer
6280708aee Prefetch less 2014-10-10 18:58:57 +02:00
Markus Unterwaditzer
2d62c8716b Continue syncing pairs if one pair crashes
Fix #121

Vdirsyncer used to exit as a whole when one pair failed to synchronize
due to connection errors. The new behavior actually tries to synchronize
other pairs before exiting with a nonzero status code. The old behavior
can be restored with the --fail-fast flag.
2014-10-08 22:03:04 +02:00
Markus Unterwaditzer
9b6dba8511 Add Orage and khard to client apps
Fix #122
2014-10-03 15:05:07 +02:00
Markus Unterwaditzer
281b537531 Fix module header 2014-09-28 14:13:21 +02:00
Markus Unterwaditzer
27682f130d Add supported software 2014-09-23 17:47:37 +02:00
Markus Unterwaditzer
d5d55d084c Version 0.3.0 2014-09-20 14:37:50 +02:00
Markus Unterwaditzer
fcf0f003aa Merge branch 'outlook_fixes' 2014-09-20 14:06:42 +02:00
Markus Unterwaditzer
1db680eb4d Internal API and doc improvements 2014-09-19 23:53:08 +02:00
Markus Unterwaditzer
37551b376f Rely on Python 3 to decode stdout. 2014-09-13 14:56:29 +02:00
Markus Unterwaditzer
14f7da4e04 Change command error to warning
Also fix some smaller stilistic things
2014-09-13 14:38:51 +02:00
Markus Unterwaditzer
1c1aadedc0 Change exception to warning 2014-09-12 16:57:33 +02:00
vimbaer
23a4a96cb9 Fixed style. 2014-09-12 00:02:11 +02:00
vimbaer
64e9ef7dc3 Renamed evalcmd -> command, use py.test's tmpdir, allow arguments in passwordeval option. 2014-09-11 23:33:44 +02:00
vimbaer
4e895b8635 Added passwordeval as an option for the general config section. If no password is provided the command provided as passwordeval will be called with username and hostname as arguments. 2014-09-10 22:03:05 +02:00
Christian Geier
753e730906 bugfix: save password with host in keyring
(the same way we try to recover it)
2014-09-09 14:10:37 +02:00
Markus Unterwaditzer
f9f1e37655 Properly mark a wart in code. 2014-09-06 01:51:36 +02:00
Markus Unterwaditzer
9e12e29db6 Properly deal with invalid filename characters
Fix #110
2014-09-03 20:35:31 +02:00
Markus Unterwaditzer
add9f640b4 CalDAV: Explicitly exclude items
Excluding items without mimetype "text/calendar" becomes necessary when
listing items, because iCloud would re-send us the URL we issued the
REPORT request on, a collection, with a mimetype of
"httpd/unix-directory".

    debug: REPORT https://p28-caldav.icloud.com/8010146223/calendars/home/
    debug: {'Depth': 'infinity', 'Content-Type': 'application/xml; charset=UTF-8', 'User-Agent': 'vdirsyncer '}
    debug: <?xml version="1.0" encoding="utf-8" ?>
    debug:             <C:calendar-query xmlns:D="DAV:"
    debug:                 xmlns:C="urn:ietf:params:xml:ns:caldav">
    debug:                 <D:prop>
    debug:                     <D:getetag/>
    debug:                 </D:prop>
    debug:                 <C:filter>
    debug:
    debug:                 <C:comp-filter name="VCALENDAR">
    debug:                     <C:comp-filter name="VTODO">
    debug:
    debug:                     </C:comp-filter>
    debug:                 </C:comp-filter>
    debug:
    debug:                 </C:filter>
    debug:             </C:calendar-query>
    debug: Sending request...
    debug: 207
    debug: {'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'server': 'iCloudCalendarServer 14F4 1', 'last-modified': 'Tue, 02 Sep 2014 13:59:11 GMT', 'dav': '1, access-control, calendar-access, calend ar-schedule, calendar-auto-schedule, calendar-managed-attachments, calendarserver-sharing, calendarserve r-subscribed, calendarserver-home-sync', 'x-transaction-id': '7f311996-32b4-11e4-a6db-78e3b5058dc0', 'da te': 'Tue, 02 Sep 2014 15:19:13 GMT', 'x-responding-server': 'mr21p28ic-hpaf05163701 18 a63660a6f7d1a25b 5a7ed66dab0da843', 'content-type': 'text/xml'}
    debug: <?xml version='1.0' encoding='UTF-8'?><multistatus xmlns='DAV:'>
    debug:
    debug:   <response>
    debug:     <href>/8010146223/calendars/home/</href>
    debug:     <propstat>
    debug:       <prop>
    debug:          <getetag>"FT=-@RU=301785db-0889-442c-ab5d-03144258969a@S=30"</getetag>
    debug:         <getcontenttype>httpd/unix-directory</getcontenttype>
    debug:       </prop>
    debug:       <status>HTTP/1.1 200 OK</status>
    debug:     </propstat>
    debug:   </response>
    debug:
    debug:   <response>
    debug:     <href>/8010146223/calendars/home/412580F4-7A0A-480D-BA99-73260B921E5D.ics</href>
    debug:     <propstat>
    debug:       <prop>
    debug:         <getetag>"C=30@U=301785db-0889-442c-ab5d-03144258969a"</getetag>
    debug:         <getcontenttype>text/calendar</getcontenttype>
    ...
2014-09-02 17:25:09 +02:00
Markus Unterwaditzer
686441b5ab Merge pull request #106 from untitaker/tls_fingerprints
TLS fingerprints (2.1)
2014-08-30 18:59:26 +02:00
Markus Unterwaditzer
2bbc92534d Some sync refactoring
- Use only one dict for storing all temporary state of a storage
- Rename functions to be internal
2014-08-30 16:23:27 +02:00