Closed JockelBln closed 5 years ago
Das hat n.m.M. nix mit Docker zu tun. Für mich liest sich das, als ob die vCards vom Server nicht syntaktisch korrekt geliefert werden: "VERSION" ist laut RFC6350 ein Pflichtfeld: "This property MUST be present in the vCard object, and it must appear immediately after BEGIN:VCARD." Dazu passt ja auch die Meldung: "Couldn´t find end of Start Tag VCARD"
Hmmm, dann bin ich erst mal wieder raus - Danke für den Hilfeversuch! Momentan habe ich auf einer VM noch eine ältere Version von carddav2fb laufen (die hast Du ursprünglich im ip-phone-forum vorgestellt und läuft noch mit PHP 7.01), dann muss ich die halt weiter nutzen.
... oder Du zeigst mal die Originaldaten.
Viele Grüße, Andreas
Am 17.10.2019 um 10:48 schrieb JockelBln notifications@github.com:
Hmmm, dann bin ich erst mal wieder raus - Danke für den Hilfeversuch! Momentan habe ich auf einer VM noch eine ältere Version von carddav2fb laufen (die hast Du ursprünglich im ip-phone-forum vorgestellt und läuft noch mit PHP 7.01), dann muss ich die halt weiter nutzen.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
Hi Andreas,
welche Daten bräuchtest Du denn? Ich habe ja noch deine Mail und könnte sie schicken. Eigentlich wollte ich ja nicht wieder zu deinem perssönlichen Pflegefall werden ;)
Gruß Jörg
Ich würde gerne sehen, welche Daten zu dem Error führen. Mit dem download
Kommando kannst Du die abspeichern. Gerne anonymisiert hier einstellen (bevorzugt) oder per PM an mich.
PS.: Was für ein Server ist das?
Die Daten werden von mailbox.org abgerufen. Download funktioniert momentan komischerweise nicht, im Terminal steht
Downloading vCard(s) from account xxxxxxx@xxxx.xx
173 [============================]
Downloaded 173 vCard(s)
Dissolving groups (e.g. iCloud)
pi@VMPi:~ $
aber ich erhalte immer eine leere *.json.
Lasse ich carddav2fb mit run
laufen funktioniert die Übertragung zur FB aber.
Wie gesagt habe ich auf meiner VM (Raspbian Stretch) noch eine ältere Version von @blacksenator laufen.
Morgen versuche ich mal eine VM mit der neuen Version von carddav2fb aufzusetzen.
Oder gibt es eine Möglichkeit den Download mit dem Dockerimage auf der DS 218+ durchzuführen?
@JockelBln hast Du den Download auch in Docker laufen? Wie ist der Aufruf? Hast Du die Ausgabedatei auch aus dem Container raus gemountet? ping @blacksenator kannst Du bzgl. Download helfen?
Oder gibt es eine Möglichkeit den Download mit dem Dockerimage auf der DS 218+ durchzuführen?
Nein, mangels multi-arch php base image habe ich dazu leider keine generische Option gefunden. Du kannst das Dockerfile aber einfach anpassen und Dir ein eigenes Image bauen....
Also was Docker angeht, da bin ich gerade am Forschen - glaube aber, dass lerne ich mit meinen fast 60 Lenzen nicht mehr :-(
Nun habe ich mir eine neue VM mit Buster aufgesetzt und die Version hier vom git getestet.
Egal ob ich mit run
oder download
starte das Ergebnis ist immer gleich
pi@Pi:~/carddav2fb $ ./carddav2fb run
PHP Notice: Undefined index: local in /home/pi/carddav2fb/src/DownloadTrait.php on line 51
PHP Warning: Invalid argument supplied for foreach() in /home/pi/carddav2fb/src/DownloadTrait.php on line 51
Downloading vCard(s) from account xxx@xxxx.xx
0 [>---------------------------]PHP Warning: SimpleXMLElement::__construct(): namespace error : Failed to parse QName 'VERSION:' in /home /pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): VERSION:3.0 in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): Entity: line 4: parser error : Specification mandate value for attribute VERSION:3.0 in /home/p i/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): N:Bxxxd;Dirk;;; in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): Entity: line 4: parser error : attributes construct error in /home/pi/carddav2fb/src/CardDav/Ba ckend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): N:Bxxxd;Dirk;;; in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): Entity: line 4: parser error : Couldn't find end of Start Tag VCARD line 2 in /home/pi/carddav2 fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): N:Bxxxd;Dirk;;; in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): Entity: line 12: parser error : Sequence ']]>' not allowed in content in /home/pi/carddav2fb/sr c/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): N:Bxxxd;Dirk;;; in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): Entity: line 12: parser error : Sequence ']]>' not allowed in content in /home/pi/carddav2fb/sr c/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ]]></address-data></prop><status>HTTP/1.1 200 OK</status></propstat></response>< in /home/pi/ca rddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): Entity: line 12: parser error : internal error: detected an error in element content in /home/p i/carddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ]]></address-data></prop><status>HTTP/1.1 200 OK</status></propstat></response>< in /home/pi/ca rddav2fb/src/CardDav/Backend.php on line 162
PHP Warning: SimpleXMLElement::__construct(): ^ in /home/pi/carddav2fb/src/CardDav/Backend.php on line 162
In Backend.php line 162:
String could not be parsed as XML
download [-d|--dissolve] [-f|--filter] [-i|--image] [-c|--config CONFIG] [--] <filename>
Ich habe jetzt mal Kontakte dierekt aus mailbox.org exportiert, die sehen doch eigentlich normal aus, oder?
BEGIN:VCARD
VERSION:3.0
N:Bxxxd;Dirk;;;
FN:Bxxxd\, Dirk
CATEGORIES:Privat
REV:20180827T160843Z
TEL;TYPE=CELL,PREF:+49 (xxx) xxxxxxx
PRODID:-//Open-Xchange//7.10.1-Rev21//EN
END:VCARD
BEGIN:VCARD
VERSION:3.0
FN:Bins\, Ich
PRODID:-//Open-Xchange//7.10.1-Rev21//EN
REV:20191018T133027Z
N:Bins;Ich;;Herr;
TEL;TYPE=voice,home,pref:+49 (30) 1234567
END:VCARD
Der oberste wurde mit Handy bzw. Outlook nach mailbox.org synchronisert, der untere wurde nur zum Test von mir direkt online dort angelegt.
Anschließend habe ich die "alte" Version carddav2fb von @blacksenator noch mal auf stretch laufen lassen, das funktioniert nach wie vor ohne Fehler.
Ich will aber gar nicht weiter damit nerven, jetzt ist erst mal Wochenende und die alte VM läuft ja eh noch bei mir wegen dem Volkszähler. Dachte nur, es ist ne coole Idee einige Sachen in Docker laufen zu lassen...
Hallo,
das mit der aktuellen Version download
ebensowenig funktioniert wie run
ist klar. Ist ja dasselbe Coding, dass da in Backend.php
durchlaufen wird.
Die Meldung PHP Notice: Undefined index: local in /home/pi/carddav2fb/src/DownloadTrait.php on line 51
liegt m.E. daran, dass die config.php nicht dem neuen Stand entspricht. Bitte mal mit example.config.php abgleichen,
Das erklärt aber leider nicht, warum die VCFs (die so erst mal valide aussehen) nicht gelesen werden können - wobei ein Export aus mailbox.org auch keine valide Aussage drüber zulässt, was der Server liefert, wenn er per http-Request angesprochen wird.
IMO sollten wir den Fehler mal eingrenzen:
git clone
zu installieren?Convert funktioniert lokal wunderbar:
❯ ./carddav2fb convert test.vcf test.xml
Reading vCard(s) from file test.vcf
2 [============================]
Read 2 vCard(s)
Converted 2 vCard(s)
Succesfull saved phonebook as test.xml
Lass Docker erstmal raus und probiere es lokal- ausser php und composer braucht es dafür nichts, auch keine vm ;)
@blacksenator wofür brauchen wir egtl. die local Option?
Das ist das User-gewünschte Feature auch eine lokale *.vcf einlesen zu können statt vom Server (oder beides)
Warum nicht einfach per ykommandozeike angeben statt config? Was bringt das? Ist aber ein separates Thema...
Hallo Ihr Beiden,
ich habe jetzt mal einen Testaccount bei mailbox.org angelegt und dort 3 Kontakte angelegt. Gern könnt Ihr damit auch testen.
@blacksenator von Dir habe ich ja keine Mail, ich sende die Zugangsdaten einfach mal per Unterhaltung im IP-Phone forum, wenn das ok ist.
@andig Wenn das ok ist schicke ich dir die Daten auch per Mail.
Mit Docker habe ich jetzt auch nicht mehr weitergemacht, dafür reicht mein Kenntnisstand eh nicht aus. Ich kann da nur ein Image runterladen und nach Schrit-für Schritt-Anweisung konfigurieren und starten.
Da ich "nur" Windoof-User bin teste ich das halt auf einer WM auf der Diskstation. Die ist doch um einiges schneller als mein Raspberry.
Den letzten Test habe ich gerade noch einmal mit git clone
gemacht, leider immernoch gleiches Ergebnis. Irgendwie hab ich wohl den wurm drin...
Bitte die https://github.com/andig/carddav2fb/blob/master/src/CardDav/Backend.php#L287 mal so ändern:
$xml = preg_replace('/(<\/*)[^!>:]+:/', '$1', $xml);
Gehts dann?
Hallo Andreas,
habe den Test-Account von @JockelBln getestet: mit dem gleichen Ergebnis :(
Aber damit ($xml = preg_replace('/(<\/*)[^!>:]+:/', '$1', $xml);
) ist der Fehler weg!
@andig @blacksenator Sorry wegen der späten Rückmeldung, ich habe die Zeile eben geändert und nun wird auch mit dieser Version wieder sauber synchronisiert.
...das Docker Image baut gerade und wird in Zukunft auch automatisch aktualisiert...
Ich habe versucht auf der Synology 218+ das Image von hub.docker.com zum Laufen zu bringen. Leider wird es ständig gestoppt und neu gestartet. im Protokoll findet sich dann folgende Meldung usw... Im Verzeichnis /data ligen die Dateien config.php und config.cron. Habe ich eventuell noch etwas vergessen? Sorry, aber ich bin noch totaler Anfänger mit Docker.