mirror of
https://github.com/Kozea/Radicale.git
synced 2025-07-23 17:48:30 +00:00
improved detection of broken vcards
This commit is contained in:
parent
18181374e1
commit
af5c1582dc
2 changed files with 24 additions and 4 deletions
|
@ -28,6 +28,7 @@ in them for XML requests (all but PUT).
|
|||
import posixpath
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from pprint import pprint
|
||||
from collections import OrderedDict
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from http import client
|
||||
|
@ -523,13 +524,15 @@ def propfind(path, xml_request, read_collections, write_collections, user):
|
|||
collections.append(collection)
|
||||
response = _propfind_response(
|
||||
path, collection, props, user, write=True)
|
||||
multistatus.append(response)
|
||||
if response:
|
||||
multistatus.append(response)
|
||||
for collection in read_collections:
|
||||
if collection in collections:
|
||||
continue
|
||||
response = _propfind_response(
|
||||
path, collection, props, user, write=False)
|
||||
multistatus.append(response)
|
||||
if response:
|
||||
multistatus.append(response)
|
||||
|
||||
return client.MULTI_STATUS, _pretty_xml(multistatus)
|
||||
|
||||
|
@ -569,7 +572,12 @@ def _propfind_response(path, item, props, user, write=False):
|
|||
element = ET.Element(tag)
|
||||
is404 = False
|
||||
if tag == _tag("D", "getetag"):
|
||||
element.text = item.etag
|
||||
try:
|
||||
element.text = item.etag
|
||||
except:
|
||||
print("Object broken (skip)")
|
||||
pprint(vars(item))
|
||||
return None
|
||||
elif tag == _tag("D", "getlastmodified"):
|
||||
element.text = item.last_modified
|
||||
elif tag == _tag("D", "principal-collection-set"):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue