Python Tool: Kontakte aus SQL DB / CardDav (Nextcloud) via REST Schnittstelle in Adressbuch

  • Das Tool liest Adressdaten von einem SQL- oder von einem Carddav Server (z.B. Nextcloud)

    Es prüft, ob der Name jedes Kontaktes bereits im Adressbuch ist. Wenn nein, wird er angelegt.

    Wenn ja, wird geprüft ob sich Rufnummern geändert haben und in diesem Falle der Kontakt gelöscht und neu angelegt.

    Im Gegensatz zu (kostenpflichtigen) Modulen ist die REST Schnittstelle i.d.R. sehr lange Update-Stabil und funktioniert auch mit einer Starface Free Edition.

    Abhängigkeiten

    SQL: 'apt install python3-pymssql' durchführen, um Datenbankmodul zu installieren.

    CardDav: 'apt install python3-vobject' sowie die folgende carddav.py Datei ins gleiche Verzeichnis kopieren:

    carddav-util/carddav.py at master · ljanyst/carddav-util
    A CardDAV import/export utility. Contribute to ljanyst/carddav-util development by creating an account on GitHub.
    github.com

    Konfiguration

    SQL-Parameter / CardDav + Starface Parameter eintragen

    SQL: Datenbankzuweisung machen, d.h. in das Dictionary in die letzte Spalte die Spaltennamen anpassen. Hier greife ich auf eine MSSQL "Repdoc" Instanz zu, aber andere CRM Systeme nutzen andere Datenbank-, Tabellen- und Spaltennamen.

    Aufruf

    - i sql Liest vom SQL Server

    - i carddav Liest vom Carddav Server

    -o print Ausgabe der CSV Datei in der Konsole

    -o csv Speichern der CSV Datei

    -o starface Hochladen der Daten via REST Schnittstelle


    z.b:

    ./starface_addr.py -i sql -o starface

    Feedback und Rückfragen hier ins Forum.

    Ich habe noch ein paar Ideen, z.B. könnte man eine CSV Datei als Quelle verwenden und hochladen. Vorteil: Es werden nur nicht vorhandene Kontakte oder geänderte Kontakte ins Adressbuch übernommen. Der Kunde könnte aus seiner Datenbank selbst regelmäßig einen Export anstoßen und das Skript läuft regelmäßig über den Ordner.

    Anpassung / Implementierung für spezifische Kundensituation: Kann ich kostenpflichtig auf Stundenbasis übernehmen.

    Wie lange hat es gedauert, das Tool zu schreiben? Ca. 14 Std. Bin aber kein alteingesessener Python Experte.

    Caveats:

    - Es dürfen keine zwei Kontakte mit gleichem Namen existieren, es wird dann nur der letzte Kontakt übernommen.

    Alternativer Download: krause-computer.de/starface_addr.py

    Edit: 29.06.2023: Problem mit Multi-vCards behoben, betrifft Synology CardDav Server

  • ChrisKrause December 25, 2022 at 10:17 PM

    Changed the title of the thread from “Kontakte anlegen mit Python via REST Schnittstelle” to “Python Tool: Kontakte aus SQL DB / CardDav (Nextcloud) via REST Schnittstelle in Adressbuch”.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!