TheBat-Adressbuch nach Owncloud/Carddav exportieren

  • Hallo Jörg,


    prima, das könnte helfen. Ich überlege immer wenn etwas Zeit ist noch wie ich meinen großen Workaround um die TheBat-Probleme gestalte.

    Muß ja lange halten da ich nicht mit einer Lösung von Ritlabs in absehbarer Zeit rechne.

    Reguläre Ausdrücke sind kein Problem, damit habe ich früher mal regelmäßig hantiert, da komme ich schnell wieder rein.

    Danke!

    Viele Grüße,

    Thomas

  • Reguläre Ausdrücke sind kein Problem, damit habe ich früher mal regelmäßig hantiert, da komme ich schnell wieder rein.

    Ich will dir nicht den Schneid abschneiden, aber warum benutzt Du nicht die Möglichkeit, eine Synchronisation mit WebDAV durchzuführen?


    Denn um aus meinem sed-script halbwegs etwas heraus zu bekommen, ist es nötig, sich erst mal mit dem Format von ownCloud zu beschäftigen, denn sonst hast Du zwar in meinem Script das, was ersetzt werden soll, aber nicht durch was es denn ersetzt werden soll, Stichwort:

    s/soll ersetzt werden/Ersatz für "soll ersetzt werden"/g

    Das ist ziemlich aufwändig!


    Aber gut, ich halte Dich nicht davon ab, probiere es einfach aus und sieh es als Challenge - aber Du bist gewarnt worden!

    =^..^=

  • Hallo Jörg,
    danke für die Warnung - ich verspreche daß ich es zuerst durchdenke bevor ich eine Lösung implementiere.
    Synchronisation mit WebDav mache ich ja schon. Fernziel ist daß es auch mit Gruppen funktioniert.
    Dafür könnte mir einen ManInTheMiddle vorstellen der die synchronisierten .vcf-Dateien zwischen dem TheBat-Format und dem Owncloud-Format wandelt.
    Dafür muß ich nur das Format der jeweiligen .vcf-Dateien kennen (siehe oben).
    Aber nach Murphy geht Ritlabs da doch noch dran kurz nachdem ich das am Laufen hätte.


    Viele Grüße,

    Thomas

  • TL;DR

    Es gibt eine möglich Lösung, siehe dazu den Schluss dieses Beitrags!


    Diese Adressbuchgeschichte scheint ein größere Baustelle zu sein:

    Wird denn so eine VCF in Thunderbird ordnungsgemäß, also ohne Dubletten importiert?

    Kommt drauf an.


    Das Grundproblem ist, wie The Bat! diese Adressbuchgruppen bildet, denn im Grunde sind die Gruppen ein Adressbuch im Adressbuch. The Bat! selbst kennt auch gar keine Gruppen, denn die gibt es nur, wenn einen Adresse einer Gruppe zugeordnet wurde. Diese Gruppen sind in den VCf-Dateien auch gar nicht bekannt und folglich auch nicht exportiert.


    Bei den Einstellungen einer Gruppe kann man wählen, ob der Eintrag auch im Hauptadressbuch erscheinen soll:



    Wenn Keine Anzeige im Hauptadressbuch aktiv ist, gibt es keine Dublette.



    Ich habe mir auch mal angesehen, wie Nextcloud, das ja auf ownCloud basiert, und das ich verwende, mit den Adressen beim Export umgeht und auch mal Thunderbird betrachtet.

    Um das alles mal nebeneinander betrachten zu können, habe ich in The Bat! mal einen Adresssatz komplett mit Daten gefüllt, und den dann exportiert:



    Das sieht im Export so aus:


    BEGIN:VCARD
    VERSION:2.1
    EMAIL;PREF;INTERNET:[e.Mail-Adresse1]
    EMAIL;INTERNET:[e.Mail-Adresse2]
    EMAIL;INTERNET:[e.Mail-Adresse3]
    N:[Nachname];[Vorname];[Mittelname];[Anrede];[Praefix]
    FN:[Nachname] [Vorname]
    TEL;CELL;VOICE:[mobil-privat]
    ORG:[Firmenbezeichnung];[Abteilung]
    URL:[URL-privat]
    UID:[Aliasname]
    TITLE:[Berufsbezeichnung]
    NOTE;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:[Notiz-Zeile1]=0D=0A[Notiz-Zeile2]=0D=0A[Notiz-Zeile3]=0D=0AUmlaute:=0D=0AAe: =C3=84=0D=0AOe: =C3=96=0D=0AUe: =C3=9C=0D=0Asz: =C3=9F=0D=0Aae: =C3=A4=0D=0Aoe: =C3=B6=0D=0Aue: =C3=BC=0D=0Anje: =C3=B1=0D=0A-ende-=0D=0A=0D=0A
    TEL;WORK;VOICE:[Telefon-geschaeftlich-Durchwahl]
    TEL;HOME;VOICE:[Telefon-privat]
    TEL;PAGER:[mobil-geschaeftlich]
    TEL;WORK;FAX:[Fax-geschaeftlich]
    TEL;HOME;FAX:[Fax-privat]
    ADR;WORK;ENCODING=QUOTED-PRINTABLE:;[Telefon-geschaeftlich-Zentrale];[Strasse-geschaeftl-Zeile1]=0D=0A[Strasse-geschaeftl-Zeile2]=0D=0A[Strasse-geschaeftl-Zeile3];[Ort-geschaeftlich];[Bundesland-geschaeftlich];[Postleitzahl-geschaeftlich];[Land-geschaeftlich]
    LABEL;WORK;ENCODING=QUOTED-PRINTABLE:[Telefon-geschaeftlich-Zentrale]=0D=0A[Strasse-geschaeftl-Zeile1]=0D=0A[Strasse-geschaeftl-Zeile2]=0D=0A[Strasse-geschaeftl-Zeile3]=0D=0A[Ort-geschaeftlich]=0D=0A[Bundesland-geschaeftlich][Postleitzahl-geschaeftlich]=0D=0A[Land-geschaeftlich]
    ADR;HOME;ENCODING=QUOTED-PRINTABLE:;;[Strasse-privat-Zeile1]=0D=0A[Strasse-privat-Zeile2]=0D=0A[Strasse-privat-Zeile3];[Ort-privat];[Bundesland-privat];[Postleitzahl-privat];[Land-privat]
    LABEL;HOME;ENCODING=QUOTED-PRINTABLE:[Strasse-privat-Zeile1]=0D=0A[Strasse-privat-Zeile2]=0D=0A[Strasse-privat-Zeile3]=0D=0A[Ort-privat]=0D=0A[Bundesland-privat][Postleitzahl-privat]=0D=0A[Land-privat]
    URL;WORK:[URL-geschaeftlich]
    X-GENDER:Male
    GENDER:M
    REV:20201030T142839Z
    BDAY:20040529
    END:VCARD


    Dann wollte ich wissen, wie *cloud das denn so macht. Also VCF-Datei in *cloud importiert, ein wenig bearbeitet, und Gruppen hinzugefügt, und anschließend wieder als VCF-Datei exportiert. Sieht so aus:



    BEGIN:VCARD
    VERSION:3.0
    FN:[Nachname]\, [Vorname] [Mittelname]
    N:[Nachname];[Vorname];[Mittelname];[Anrede];[Praefix]
    NICKNAME:[Aliasname]
    GENDER;VALUE=UNKNOWN:M;
    X-GENDER:MALE
    BDAY;VALUE=DATE:20040529
    ADR;TYPE=WORK:;;[Strasseee-geschaeftl-Zeile1]\n[Strasse-geschaeftl-Zeile2]\
    n[Strasse-geschaeftl-Zeile3];[Ort-geschaeftlich];[Bundesland-geschaeftlich]
    ;[Postleitzahl-geschaeftlich];[Land-geschaeftlich]
    ADR;TYPE=HOME:;;[Strasseee-privat-Zeile1]\n[Strasse-privat-Zeile2]\n[Strass
    e-privat-Zeile3];[Ort-privat];[Bundesland-privat];[Postleitzahl-privat];[La
    nd-privat]
    URL;TYPE=WORK:[URL-geschaeftlich]
    URL;TYPE=HOME:[URL-privat]
    TEL;TYPE=HOME;VALUE=UNKNOWN:[Telefon-privat]
    TEL;TYPE="HOME,FAX";VALUE=UNKNOWN:[Fax-privat]
    TEL;TYPE=CELL;VALUE=UNKNOWN:[mobil-privat]
    TEL;TYPE=WORK;VALUE=UNKNOWN:[Telefon-geschaeftlich-Durchwahl]
    TEL;TYPE="WORK,FAX";VALUE=UNKNOWN:[Fax-geschaeftlich]
    TEL;TYPE=PAGER;VALUE=UNKNOWN:[mobil-geschaeftlich]
    EMAIL;TYPE=INTERNET:[e.Mail-Adresse1]
    EMAIL;TYPE=INTERNET:[e.Mail-Adresse2]
    EMAIL;TYPE=INTERNET:[e.Mail-Adresse3]
    TITLE:[Berufsbezeichnung]
    NOTE:[Notiz-Zeieieile1]\n[Notiz-Zeile2]\n[Notiz-Zeile3]\nUmlaute:\nAe: Ä\nO
    e: Ö\nUe: Ü\nsz: ß\nae: ä\noe: ö\nue: ü\nnje: ñ\n-ende-\n\n
    ORG:[Firmenbezeichnung];[Abteilung];
    REV;VALUE=DATE-AND-OR-TIME:20201030T141111Z
    UID:4e2511c0-8db6-4d4d-bc37-b7dae321fb4b
    CATEGORIES:Nachbar,Testadresse,Abuse,PA III/VIII
    END:VCARD


    Oha, das muss also noch so einiges angepasst werden, da auch die Zuordnung z.B. bei den Telefonnummern oder E-Mail-Adressen, ob privat, geschäftlich oder sonstige, auch nicht korrekt passt (das sind die als Unkown bezeichneten).


    Aber hier ist auch evtl eine Lösung für das anfangs beschriebene Problem mit den Gruppen:

    die Gruppen tauchen hier unter CATEGORIES:Nachbar,Testadresse,Abuse,PA III/VIII auf. Da lässt sich also schon mal was machen. Doch dazu mehr am Schluss.


    Der Vollständigkeit halber nun noch ein Wort zu Thunderbird:

    Die exportierte VCF-Datei aus The Bat! habe ich in Thunderbird importiert - Ergebnis: nix!


    Das hat mich verwundert - also habe ich mal die Musteradresse mit allen Felder, die ich per WebDAV mit Thunderbird syncronisiert hatte, auch als VCF-Datei exportiert. Die sieht noch ganz anders aus:


    begin:vcard
    fn:[Nachname] [Vorname]
    n:[Nachname];[Vorname]
    org:[Firmenbezeichnung];[Abteilung]
    adr:;;[Strassee-geschaeftl-Zeile1][Strasse-geschaeftl-Zeile2][Strasse-geschaeftl-Zeile3];[Ort-geschaeftlich];[Bundesland-geschaeftlich];[Postleitzahl-geschaeftlich];[Land-geschaeftlich]
    email;internet:[e.Mail-Adresse1]@server.test
    title:[Berufsbezeichnung]
    tel;work:[Telefon-geschaeftlich-Durchwahl]
    tel;fax:[Fax-privat], [Fax-geschaeftlich]
    tel;pager:[mobil-geschaeftlich]
    tel;home:[Telefon-privat]
    tel;cell:[mobil-privat]
    note;quoted-printable:[Notiz-Zeieile1]=0D=0A=
    [Notiz-Zeile2]=0D=0A=
    [Notiz-Zeile3]=0D=0A=
    Umlaute:=0D=0A=
    Ae: =C3=84=0D=0A=
    Oe:=C3=96=0D=0A=
    Ue: =C3=9C=0D=0A=
    sz: =C3=9F=0D=0A=
    ae: =C3=A4=0D=0A=
    oe: =C3=B6=0D=0A=
    ue: =C3=BC=0D=0A=
    nje: =C3=B1=0D=0A=
    -ende-=0D=0A=
    =0D=0A=

    x-mozilla-html:FALSE
    url:[URL-geschaeftlich]
    version:2.1
    end:vcard


    Da passt zwar die Zuordnung verschiedener Angaben, doch sind hier mal locker drei E-Mail-Adressen, Geburtsdatum usw. futsch.

    Anyway.


    Meine Idee ist jetzt folgende:


    TL;DR:

    In The Bat! exportiert man die Gruppen jeweils einzeln für sich. Gruppen, deren Adressen auch im Hauptadressbuch erscheinen, bleiben dabei außen vor, d.h. werden nicht exportiert. Dann werden die exportierten VCF-Dateien mit sed behandelt und man ergänzt mit sed die Gruppe(n) (CATEGORIES:Nachbar,Testadresse,Abuse,PA III/VIII), und zwar so:


    sed -e 's/END:VCARD/CATEGORIES:Nachbar,Testadresse,Abuse,PA III/VIII\nEND:VCARD/g' eineVCFdatei.vcf


    Das war's dann!



    ... und sagt Kate, das ich sie liebe!

  • ach ja:

    ich hatte mal gefühlt drei Sekunden nach dem Urknall diesen Wunsch und hab ihn hier gepostet:


    [wish] Neues Datenbankformat für Maildatenbank: z.B. SQlite


    Das gab es dann auch als Wunsch im RitLabs-Bugtracker (RitLabs-Bugtracker: wish #7350), ist aber der Kettensäge von Freddy Krueger zum Opfer gefallen, oder so ähnlich...


    Ich bin immer noch der Überzeugung, dass man damit viele Problem lösen könnte: ein bisschen SQL-Magie und schon hat man die passende Export-Datei...

  • Ich bin immer noch der Überzeugung, dass man damit viele Problem lösen könnte: ein bisschen SQL-Magie und schon hat man die passende Export-Datei...

    Ja, ja, jaaaaa! So wahr.

    The Bat! Pro 9.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

  • Die exportierte VCF-Datei aus The Bat! habe ich in Thunderbird importiert - Ergebnis: nix!

    Kann ich nicht bestätigen. Meine TB!-VCF wird in Thunderbird ohne Probleme importiert. Die Adressen aus Gruppen landen dann halt im importierten Hauptadressbuch.


    Dasselbe Spiel übrigens auch mit TB! selbst. Gruppen werden nicht importiert und die Adressen daraus landen im Hauptadressbuch.


    Mit LDIF ist hingegen alles Bestens sowohl in TB! als auch Thunderbird. Gruppen werden ordnungsgemäß importiert (in Thunderbird sind's Listen). Ich habe daher bisher immer nur dieses Format verwendet.

  • Oh, LDIF klappt!?, das hatte ich nie überprüft ob das klappt mangels eigenem LDAP-Server.

    The Bat! Pro 9.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.