Add an option to use vCard 4.0

Fix #503
This commit is contained in:
wrvsrx 2023-05-06 21:43:59 +08:00 committed by Hugo Osvaldo Barrera
parent 0f0e5b97d3
commit 9abf9c8e45

View file

@ -894,14 +894,21 @@ class CardDAVStorage(DAVStorage):
item_mimetype = "text/vcard"
discovery_class = CardDiscover
get_multi_template = """<?xml version="1.0" encoding="utf-8" ?>
def __init__(self, *args, use_vcard_4=False, **kwargs):
self.use_vcard_4 = use_vcard_4
super().__init__(*args, **kwargs)
@property
def get_multi_template(self):
ct = 'Content-Type="text/vcard" version="4.0"' if self.use_vcard_4 else ""
return f"""<?xml version="1.0" encoding="utf-8" ?>
<C:addressbook-multiget xmlns="DAV:"
xmlns:C="urn:ietf:params:xml:ns:carddav">
<prop>
<getetag/>
<C:address-data/>
<C:address-data {ct}/>
</prop>
{hrefs}
{{hrefs}}
</C:addressbook-multiget>"""
get_multi_data_query = "{urn:ietf:params:xml:ns:carddav}address-data"