andig / carddav2fb

Download CardDAV VCards and upload as phonebook to AVM FRITZ!Box
63 stars 19 forks source link

Support for collections & non-default vcard extension #124

Closed Michi-F closed 5 years ago

Michi-F commented 5 years ago

Hallo,

die Änderungen sind zur Unterstützung von vcard-collections. Das Handling von "nicht-standard" vcard extensions (z.B. wenn die extension .vcf in der URL weggelassen wird) habe ich ebenfalls angepasst.

Manche vcard-server geben nicht einzelen vcards (also pro Kontakt eine vcard), sondern eine vcard-collection zurück (alle vcards in einer Datei).

Ich habe den Support für diese vcard-collections eingebaut. Wenn $response->propstat->prop->resourcetype->collection gesetzt ist, dann wird getVcardsFromCollection ausgeführt (mit $parser->getCards anstatt $parser->getCardAtIndex).

Welche collections heruntergeladen werden, kann in einem Array "collections" im "server"-Array in der config bestimmt werden. Ist das Array leer / nicht gesetzt, dann werden alle collections berücksichtigt.

Außerdem habe ich die hardcoded-Prüfung für die "nicht .vcf-extension server" durch einen config-parameter "vcard_extension" ersetzt.

Funktioniert bei mir soweit, hilft evtl. dem ein oder anderen weiter... :)

andig commented 5 years ago

Danke für den PR. Damit das reproduzierbar klappt brauchen wir aber auch einen Testfall für mit/ohne collection- könntest Du den ebenfalls noch anfügen?

blacksenator commented 5 years ago

https://tools.ietf.org/html/rfc6352#section-5.2

andig commented 5 years ago

ping @Michi-F willst Du den PR auf aktueller Basis noch fertig machen? Sonst würde ich hier schließen?

andig commented 5 years ago

Mangels feedback geschlossen.