Hallo Black Senator,

danke für die schnelle Hilfe. Deine Antwort macht Sinn. Ich habe mir jetzt noch mal die exportierten vcf dateien angeschaut und da steht tatsächlich "CATEGORIES:Test". Ich habe jetzt nach Deiner Anweisung die config.php geändert:

'filters' => [
'include' => [
// 'Fritzbox' // if empty include all by default
// 'category' => [ 'Test'
// ],
// 'group' => [
// ],
],

'exclude' => [
'category' => [
'Test', 'b'
],
'group' => [
'c', 'd'
],
],
],

Ich habe zur Zeit in meinem Telefonbich 91 Einträge von denen 3 in Categorie test sind.

$ grep CATEGORIES Kontakte-2019-07-20.vcf
CATEGORIES:Test
CATEGORIES:Test
CATEGORIES:Test
$

Wenn ich jetzt Test in exclude nehme, sehe is 91 Einträge converted. So sehe ich das dann auch auf dem Telefon.

$ php carddav2fb.php run
Downloading vCard(s) from account telefonbuch
91 [============================]
Downloaded 91 vCard(s)
Parsing vcards
Converted 91 vcard(s)
Uploading
Uploaded fritz phonebook

Nehme ich 'Test' in include steht bei converted 0 und es wird aich keine Adresse hoch geladen. Keine Ahnung warum....

Ich habe jetzt schon mal die letzte Version vom script herunter geladen, da bekomme ich aber den Fehler

$ php carddav2fb run
PHP Warning: require_once(vendor/autoload.php): failed to open stream: No such file or directory in /home/pi/test/carddav2fb/carddav2fb on line 8
PHP Fatal error: require_once(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in /home/pi/test/carddav2fb/carddav2fb on line 8
$

Danke für jeden Tipp

Willi
 
Hallo Willi,

ad1: wenn Du eine neue Version installierst, dann musst Du entweder die composer.lock löschen und mit composer install —no-dev neu erstellen oder mit composer update —no-dev aktualisieren.

ad2: grep liefert zwar CATEGORIES:Test, aber irgendwas stimmt da nicht, weil das Verhalten von 'Test' in include zu dem (unerwarteten) in exclude passt.
Überprüfe noch einmal Groß- und kleinschreibung bzw. Leerstellen.
Um es lesbarer zu halten lösche besser die 'b', 'c', 'd' in der config.php

Mfg


Black Senator
 
Hallo Black Senator,

Top1
Problem gelöst. Man sollte immer alle Einträge des threads lesen. Die Lösung steht in #65.. Der Fehler ist, dass in der config.php 'category' steht wo eigentlich 'categories' stehen sollte. Heine Ahnung ob das ein Bug ist oder ob man das bei Apfel Rechnern so braucht. Wen man s/category/categories/ macht funktioniert auf jeden Fall alles so wie es soll. Super!!! Und danke für die Hilfe.

Top2
Noch ein zweiter Punkt zur Neuinstallation. Ich habe versucht die Installatione komplett neu in einem neuen Verzeichnis aufzusetzen, da ich meine funktionierende Installation nicht beschädigen wollte. Allerdings scheint die ursprüngliche Anleiting nicht mehr zu funktionieren. Das beginnt damut, dass die Checksumme des downloads nicht mehr stimmt "Installer corrupt", geht weiter dass der composer-setup.php nicht da ist "Could not open input file: composer-setup.php" und wenn man trotzdem weiter macht und "compser install" durchführt, der eigentliche Befehl "php carddav2fb run" mit der Fehlermeldung "PHP Parse error: syntax error, unexpected ',' in /home/pi/test/carddav2fb/config.php on line 29" endet.

Keine Ahnung ob ich da was falsch gemacht habe oder ob die Installationsanleitung nicht mehr aktuell ist.

Top3
Und weil es so schön ist, und ich sowiso beim lesen war habe ich noch die Anleitung für das Update gesehen "git pull https://github.com/andig/carddav2fb...". Das habe ich dann gemacht und es hat auch funktioniert. Super wie schnell das jetzt geht. Allerdings habe ich noch eine Fehlermeldung:

$ php carddav2fb run
Downloading vCard(s) from account mkuhn
142 [============================]
Downloaded 142 vCard(s)
Dissolving groups (e.g. iCloud)
Dissolved 0 group(s)
Filtering 142 vCard(s)
Filtered out 64 vCard(s)
Contact without phone numbers will be skipped
Contact without phone numbers will be skipped

Converted 78 vCard(s)
Uploading
Successful uploaded new Fritz!Box phonebook
PHP Notice: Undefined index: fritzfons in /home/pi/carddav2fb_new/src/RunCommand.php on line 102

Es funktioniert aber trotzdem.

Gruß und vielen Dank für Deine tolle Arbeit.

Markus
 
Ad1: ich erinnere mich an die Meldung - ich schaue mir das im Laufe der Woche an - wäre ein Bug.

Ad2: da ist bei Dir in der config.php in line 29 ein Komma zuviel, wo keines sein darf

Ad3: deine config.php ist noch auf dem alten Stand - vergleiche mal mit der neuen example.config.php!
Der fritzfons-Eintrag dient dazu, evtl. Kurzwahlen als Image auf ein evtl. vorhandenes Fritz!Fon zu bringen. Schau dazu mal ein paar Threads vorher (#106)

Mfg

Black Senator

Bin z.Z. unterwegs und kann die Details daher nicht am PC/Raspberry nachvollziehen. Mach ich nach Rückkehr
 
Zuletzt bearbeitet:
Hallo Black Senator,

Super Danke läuft jetzt.

Gruß

Markus
 
Hallo,

wir haben ein größeres Refactoring vorgenommen und die bisherige Parser-Library gegen
sabre/vobject ausgetauscht. Ein weitere Schritt zu mehr Stabilität und besserer Wartbarkeit durch Verwendung aktueller Standards.

Das Updaten funktioniert wie hier beschrieben. ACHTUNG: die config.example.php hat sich ein wenig geändert!

Fehler jedoch nicht hier, sondern ausschließlich als Issue im Repo auf GitHub melden (english preferred)!


Black Senator
 
Zuletzt bearbeitet:
Mist, Update gemacht und nun geht nichts mehr.
Code:
git pull https://github.com/andig/carddav2fb
remote: Enumerating objects: 62, done.
remote: Counting objects: 100% (62/62), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 145 (delta 46), reused 49 (delta 42), pack-reused 83
Empfange Objekte: 100% (145/145), 304.59 KiB | 0 bytes/s, Fertig.
Löse Unterschiede auf: 100% (75/75), abgeschlossen mit 15 lokalen Objekten.
Von https://github.com/andig/carddav2fb
 * branch            HEAD       -> FETCH_HEAD
Aktualisiere 46cae0e..0ce0ccf
Fast-forward
 .dockerignore                    |   4 ++
 .gitignore                       |   2 +
 .travis.yml                      |  44 ++++++++++++++++----                                                                                                                                                                                 
 Dockerfile                       |  22 ++++++++++                                                                                                                                                                                           
 README.md                        |  67 ++++++++++++++++++++++++++----                                                                                                                                                                       
 assets/fritzfon.png              | Bin 0 -> 49507 bytes                                                                                                                                                                                     
 assets/impact.ttf                | Bin 0 -> 136076 bytes                                                                                                                                                                                   
 assets/keypad.jpg                | Bin 0 -> 35211 bytes                                                                                                                                                                                     
 carddav2fb.php => carddav2fb     |   3 +-                                                                                                                                                                                                   
 composer.json                    |  11 +++--                                                                                                                                                                                               
 config.example.cron              |   2 +                                                                                                                                                                                                   
 config.example.php               |  31 ++++++++------                                                                                                                                                                                       
 docker-entrypoint                |  27 ++++++++++++                                                                                                                                                                                         
 phpstan.neon                     |   6 +++                                                                                                                                                                                                 
 phpunit.xml                      |   8 ++++                                                                                                                                                                                                 
 src/BackgroundCommand.php        |  36 ++++++++++++++++                                                                                                                                                                                     
 src/CardDav/Backend.php          | 232 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------                                                                                               
 src/ConvertCommand.php           |   2 +-                                                                                                                                                                                                   
 src/FritzBox/Api.php             |  19 +++++++++                                                                                                                                                                                           
 src/FritzBox/BackgroundImage.php | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                                                                 
 src/FritzBox/Converter.php       | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 src/RunCommand.php               |  15 ++++---
 src/UploadCommand.php            |   5 ++-
 src/Vcard/Parser.php             | 343 -----------------------------------------------------------------------------------------------------------------------------------------------------
 src/functions.php                | 449 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 tests/ConverterTest.php          | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/FunctionsTest.php          | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 27 files changed, 1514 insertions(+), 734 deletions(-)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile
 create mode 100644 assets/fritzfon.png
 create mode 100644 assets/impact.ttf
 create mode 100644 assets/keypad.jpg
 rename carddav2fb.php => carddav2fb (85%)
 mode change 100755 => 100644
 create mode 100644 config.example.cron
 create mode 100755 docker-entrypoint
 create mode 100644 phpstan.neon
 create mode 100644 phpunit.xml
 create mode 100644 src/BackgroundCommand.php
 create mode 100644 src/FritzBox/BackgroundImage.php
 delete mode 100644 src/Vcard/Parser.php
 create mode 100644 tests/ConverterTest.php
 create mode 100644 tests/FunctionsTest.php
pi@raspi:~/carddav2fb $ composer update --no-dev
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ^7.1 but your PHP version (7.0.33) does not satisfy that requirement.
  Problem 2
    - phpunit/phpunit 7.5.9 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.8 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.7 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.6 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.5 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.4 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.3 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.2 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.14 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.13 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.12 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.11 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.10 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.1 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.5.0 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.4.5 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.4.4 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.4.3 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.4.2 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.4.1 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.4.0 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.3.5 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.3.4 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.3.3 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.3.2 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.3.1 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.3.0 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.7 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.6 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.5 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.4 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.3 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.2 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.1 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.2.0 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.1.5 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.1.4 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.1.3 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.1.2 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.1.1 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.1.0 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.0.3 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.0.2 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.0.1 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - phpunit/phpunit 7.0.0 requires php ^7.1 -> your PHP version (7.0.33) does not satisfy that requirement.
    - Installation request for phpunit/phpunit ^7 -> satisfiable by phpunit/phpunit[7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.4.0, 7.4.1, 7.4.2, 7.4.3, 7.4.4, 7.4.5, 7.5.0, 7.5.1, 7.5.10, 7.5.11, 7.5.12, 7.5.13, 7.5.14, 7.5.2, 7.5.3, 7.5.4, 7.5.5, 7.5.6, 7.5.7, 7.5.8, 7.5.9].

Running update with --no-dev does not mean require-dev is ignored, it just means the packages will not be installed. If dev requirements are blocking the update you have to resolve those problems.

--

Installation nach der Anleitung (Seite 1 ) geht nun auch nicht mehr. Man so ein Mist, nun geht nichts mehr. Warum macht man ein Programm was mal funktionierte so kaputt mit irgenwelchen Updates ...
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

der Fehler liegt doch nicht im Programm (das läuft ja noch nicht einmal), sondern in deiner PHP-Installation:
This package requires php ^7.1 but your PHP version (7.0.33) does not satisfy that requirement.

Running update with --no-dev does not mean require-dev is ignored, it just means the packages will not be installed. If dev requirements are blocking the update you have to resolve those problems.

Grüße

Black Senator
 
Hallo,

da ich nicht weiß welche "version" du vorher verwendet hast folgende Empfehlung:
  1. deine config.php (oder wie immer die heißt) lokal sichern
  2. den carddav2fb-Ordner löschen
  3. bring deine PHP-Installation auf einen Release 7.1 oder höher
  4. komplett neu installieren mit git clone...
  5. composer install --no-dev
  6. config.example.php mit deiner config.php abgleichen, Werte übertragen, ggf. neue Konfigurationen setzen und als config.php speichern
Viel Erfolg

Black Senator
 
Ich mache bei dem Raspi jetzt ein Update auf Buster und melde mich dann wieder. Danke schon mal für die Antwort.

--

So läuft nun. Ich habe alles neu gemacht.
 
Zuletzt bearbeitet von einem Moderator:
Hallo Leute, kurze Frage an die Experten:
Ich würde gerne carddav2fb nutzen um einen bereits vorliegende vcf Datei zu konvertieren und dann auf die Fritzbox zu schieben. Also quasi nur "convert" und "upload" ohne download. Nach allem was ich gelesen habe, müsste das doch gehen, oder?
Wenn ich allerdings eingebe:
php carddav2fb convert adr.vcf

kommt die Fehlermeldung

[Exception]
Could not read parsed vCards from adr.vcf

was ich so verstehe, dass ihm irgendeine Vorauswahl fehlt. Mache ich was falsch?

Bin für jeden Hinweis dankbar...

Viele Grüße, ragee
 
nur "convert" und "upload" ohne download
Hallo ragee,

ja, richtig gedacht - aber... die Zwischenschritte sind aus der Ursuppe der ersten Betas und - zumindest von mir stiefmütterlich behandelt worden.
Für den Upload von *.vcf war das aber auch nie vorgesehen, sondern irgend so ein JSON-Geraffel passend zum alten Parser - ich habe mich da nie so mit beschäftigt. Ich habe gerade noch ´mal ins Coding geschaut und meine, dass das gar nicht mehr passen kann und in der Form keinen Sinn ergibt, seit wir auf sabre/vobject umgestiegen sind.

Ich bin aber gerade dabei, einen anderen PR zum Abschluß zu bringen. Da springe ich ungern auf ein paralleles Thema! Gib mir ein paar Tage Zeit, dann schaue ich mir das in Ruhe an und überarbeite grundsätzlich diese Teil-Schritte.

Grüße

Black Senator
 
Hi Black Senator!

Das wäre natürlich klasse wenn du da nochmal drauf schauen könntest. Ich denke mal wenn ihr die "Dreiteilung" beibehalten wollte (download|convert|upload) macht das wahrscheinlich auch Sinn, dass auch die Einzelschritte sauber funktionieren. Ich fänd's jedenfalls klasse!! ::)

Vielleicht nochmal zur Erklärung warum ich das gerne nützen würde:

Ich habe einen Carddav Server (Davical) mit eigener IP Adresse laufen. Zugriff von außen ist nur über https möglich und das möchte ich ungern ändern. Carddav2fb nutze ich schon seit vielen Jahren um die Adressen mit meiner FB zu synchronisieren. Beim Upgrade auf die neueste carddav2fb Version vor ein paar Tagen funktionierte plötzlich der Download nicht mehr. Wahrscheinlich liegt es an der curl Bibliothek, die irgendwie mit der Verschlüsselung nicht klar kommt. Ich hatte da auch schon ein issue auf andig/carddav2fb aufgemacht, aber andig konnte auch nicht helfen, es scheint an den zugrundeliegenden curl Bibliotheken zu liegen.

Heißt also: mein Problem wäre gelöst, wenn ich die vcf Dateien selber vom Server hole und sie anschließend konvertiere und auf die FB schiebe.

Sag Bescheid, wenn ich irgendwie unterstützen, testen, o.ä. kann.

Danke schon mal im voraus!

Gruß, Ragee
 
Okay,

das Issue hatte ich aus dem Augenwinkel verfolgt.

Wäre es nicht aber sinnvoller den CardDAV-Server so zum Laufen zu bringen, dass ein beliebiges Programm damit zurecht kommt? Wie andig schrieb, verwenden wir GuzzleHttp - das sollte als Standardbibliothek also nicht der Grund sein.
Abgesehen davon: warum muss es unbedingt https sein, wenn du innerhalb deines Netzes darauf zugreifst? Welchen Mehrwert bringt da die Verschlüsselung?

Ich habe gestern spät der PR #151 gepusht - kannst ja mal schauen, was der so bereit hält.
Für die Trennung in einzelne Schritte zeigt er ganz gut, wo die Grenzen zwischen einem konsistenten run und download, convert, upload liegen werden: einige Features werden sich nicht sinnvoll zergliedern lassen. Das ergibt sich schon aus dem unterschiedlichen Datenmodellenvon vCard und FRITZ!Box (und dessen Speicherorten von Telefonbuch, Anruferbildern, Hintergrundbildern etc.).
Ich werde einen run bauen, der als Input ein *.vcf nimmt und dann durchläuft - das ist das, was du brauchst. Das sollte sich einfach machen lassen.

Grüße

Black Senator
 
Du hast recht! Der Server sollte natürlich auf Anfragen von Standardsoftware korrekt antworten. Es gab an anderer Stelle auch schon mal Probleme mit der Verschlüsselung, dort hat die Kommunikation von curl mit davical auch nicht geklappt. Leider wird davical nicht mehr so schrecklich aktiv weiterentwickelt, so dass ich da niemanden fragen kann und mir selbst fehlt da vollkommen der Durchblick. Wenn ich was besseres als davical finde steige ich vielleicht um... Für den Moment scheue ich den Aufwand, es geht um zig Adressbücher von verschiedenen Personen.

Auf die Verschlüsselung will ich auf keinen Fall verzichten. Wie gesagt: es geht nicht um Kommunikation innerhalb eines Netzes, sonst wäre es wirklich egal. Der Server steht selbstständig im Netz und ich greife täglich von allen möglichen Clients (Smartphone, Tablets, Laptops) darauf zu, sowohl aus dem Firmennetz, wie auch z.B. von zu Hause aus und natürlich auch von "unterwegs".

PR #151 schau ich mit heute Abend mal an, vielen Dank!

Gruß, Ragee
 
Moin


Auf die Verschlüsselung will ich auf keinen Fall verzichten.
Die Verschlüsselung an sich ist hier weniger das Problem, schätze ich.
Es ist die Klientseitige Zertifikatsüberprüfung.
Siehts der Klient nicht so Eng und überprüfts einfach nicht, ist die Verbindung trotzdem verschlüsselt.
Hatte ich letztens mit Python und einer FRITZ!BOX, deren sowieso ungültige Certs ich nicht extra installieren wollte.
Code:
# "Monkey Patching" for unverified HTTPS Certificate
ssl._create_default_https_context=ssl._create_unverified_context
 
Hallo Ragee,

so, der Import von *vcf in Runcommand ist als draft fertig. Die config bekommt eine zusätzliches array, in dem man wie bei 'server' mehrere files (fullpath) angeben kann. Das Einlesen der lokalen Files erfolgt vor dem der Server aber ziemlich ähnlich. So kann man entweder lokale und/oder Servedaten einlesen. Der Rest läuft dann normal durch.
Wie gesagt draft, ausführliche Tests mit verschiedenen Konstellationen muss ich noch machen - und dann muss erst mal der #151er gemerget werden.

Grüße

Black Senator
 
Es ist die Klientseitige Zertifikatsüberprüfung.

Ich glaube eigentlich nicht, dass es die Überprüfung des Zertifikates ist:
Code:
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
zeitgt eigentlich, dass er sich das Zertifikat anschaut, merkt dass es eh nichts wert ist (selbst unterschrieben) und dann weiter macht. So wie es auch sein soll. In der config steht ja, er soll selbst-signierte Zertifikate ignorieren.

Später dann kommt allerdings:
Code:
* OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0
* stopped the pause stream!
* Closing connection 0

In CurlFactory.php line 186:
                                                                                                                                     
  cURL error 56: OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0 (see htt
  p://curl.haxx.se/libcurl/c/libcurl-errors.html)

Das scheint mir doch eher auf eine nicht funktionierende Verschlüsselung hinzudeuten, oder ?
[Edit Novize: Beiträge zusammengeführt - siehe Forumsregeln]
so, der Import von *vcf in Runcommand ist als draft fertig

Hi Black Senator! Das ist ja klasse, vielen Dank!

Allerdings hat es bei mir auf Anhieb nicht geklappt :confused: Ic bin allerdings nicht sicher, ob ich den Git Branch von dir richtig geladen habe. ich kenne mich mit Git nicht so übermäßig gut aus. ich habe:

1. meinen alten Pfad carddav3fb gelöscht
2. git pull https://github.com/blacksenator/carddav2fb.git
3. composer update

In der config.php eingetragen:
'local' => [ '/home/user/ra/test04.vcf']

oder auch

'local' => [ 'file:///home/user/ra/test04.vcf']

und dann php carddav2fb run bzw php carddav2fb download laufen lassen.

Bei "run" kommt folgende Fehlermeldung:

Code:
PHP Fatal error:  Uncaught Error: Class 'SoapClient' not found in /home/ra/carddav2fb/vendor/blacksenator/fritzsoap/src/fritzsoap.php:70
Stack trace:
#0 /home/ra/carddav2fb/src/functions.php(671): blacksenator\fritzsoap\fritzsoap->getClient('x_contact', 'X_AVM-DE_OnTel:...')
#1 /home/ra/carddav2fb/src/RunCommand.php(41): Andig\downloadPhonebookSOAP(Array)
#2 /home/ra/carddav2fb/vendor/symfony/console/Command/Command.php(255): Andig\RunCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /home/ra/carddav2fb/vendor/symfony/console/Application.php(963): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/ra/carddav2fb/vendor/symfony/console/Application.php(254): Symfony\Component\Console\Application->doRunCommand(Object(Andig\RunCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 / in /home/ra/carddav2fb/vendor/blacksenator/fritzsoap/src/fritzsoap.php on line 70

Bei "download" kommt:

Code:
Downloading vCard(s) from account
    0 [>---------------------------]* Could not resolve host: ..
* Closing connection 0

In CurlFactory.php line 185:
                                                                                                   
  cURL error 6: Could not resolve host: .. (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
                                                                                                   

download [-i|--image] [-r|--raw RAW] [-c|--config CONFIG] [--] [<filename>]

Hast du eine Idee???

Gruß, Ragee
 
Zuletzt bearbeitet von einem Moderator:
Ruhig, ruhig...
Darum schrieb ich ja auch am Freitag nur "Draft". Ich wollte Dir eigentlich nur zwischenzeitlich einen Wasserstand geben. Tatsächlich habe ich aber gestern die Änderungen mit dem PR #155 gepusht.

Damit du dich zurecht findest:
Auf dem Repo von andig gibt es den Branch master. Dort hinein kommen alle PR´s (Feature-Branches), die andig´s gestrenges Auge und Qualitätsanspruch genügen. Seine anderen Branches kannst Du außer Acht lassen. Wenn du von ihm pullst, dann bekommst Du immer automatisch den master.

Wenn sich sein master ändert, dann ziehe ich meinen master in meinem Repo (Fork von andig) gleich. Wenn Du von mir pullst, dann bekommst Du autmatisch meinen Branch next - der enthält neben den Inhalten von master zwei wesentliche Erweiterungen, die andig nicht in seinem Repo haben wollte.

So, nun zurück zu den Änderungen: ich erstelle also Branches auf Basis von master (even mit andigs master) und pushe die auf mein GitHub und von dort schiebe ich die als PR zu andig. Wenn wir mit den gewünschten tausend Korrekturen durch sind, dann wird das in sein master gemergt...

Wenn Du also vorab (also beta!) den Feature Branch mit dem VCF-Upload (enthält auch eine komplette Überarbeitung von download, convert und upload), dann musst Du dir den explizit mit Angabe des Branch Namens (import_vcf_file) von meinem Repo pullen:
Code:
$ git pull https://github.com/blacksenator/carddav2fb import_vcf_file

Folgende Anpassungen/Änderungen sind darin:
1. wenn in der config ein oder mehrere lokale Files angegeben sind, dann werden auch diese beim run ebenso wie von Servern eingelesen
2. beim download command werden Daten vom Server gelesen und im VCF-Format gespeichert (Angabe: filename). Hier sollte das Einlesen lokler Files genauso funktionieren (wenn man das ausschließlich nutzt, sollte man sich fragen, warum man lokal von VCF zu VCF schreiben). Okay, mann kann damit VCF-unterschiedlicher Herkunft mergen und und dann ausfiltern, denn: mit den Optionen -d wird gesteuert ob Gruppen aufgelöst werden und -f ob die konfigurierten Filter berücksichtigt werden. Also -df bzw. -dfi entspricht im Ergebnis den ersten Teilschritten im run comand
3. beim convert wird die VCF-Datei eingelesen und als XML gespeichert (Angabe source und destination). Entspricht dem nächsten Schritt im run command. Option hier nur -i (wenn Images berüksichtigt werden sollen)
4. beim upload wird die XML auf die FRITZ!Box geladen

Verwirrend genug?

Grüße

Black Senator
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.