vCard Konverter für das Mac OSX Adressbuch

vCard-Kontakte ( link) können u.a. ein Bild zum Kontakt enthalten, gerade exportierte Adressbücher von xing.com machen reichlich Gebrauch davon. XING bettet diese Bilder als URL in die vCard-Datei ein, was auch eine von zwei möglichen Methoden ist, die der Standard hier vorsieht. Leider wird genau diese Methode vom OSX-Adressbuch nicht unterstützt, sodass importierte Kontakte durchweg ohne das zugehörige Bild erscheinen. Schade, denn Mobiltelefone und PDAs bieten für gewöhnlich die Möglichkeit, ein Bild zum Anrufer anzuzeigen und auch das Mailprogramm von OSX nutzt das Feature.

Die Lösung besteht darin, die vCard-Datei nachzubearbeiten und die ursprünglich nur als URL vorliegende Bildinformation durch das verlinkte JPEG-Bild zu ersetzen. Dazu kann man zum Beispiel ein kleines python-Skript verwenden:

#!/usr/bin/env python
import re, urllib2, base64

def downloadAndConvert(l):
        url = l[16:]
        content = urllib2.urlopen(url).read()
        enc = base64.encodestring(content).replace("\n", " ")
        return "PHOTO;BASE64:" + enc + "\n"

fin = open('vcards-XING.vcf', 'r')
fout = open('vcards-XING-conv.vcf', 'w')
try:
        for line in fin:
                tmp = line
                if line.startswith('PHOTO;VALUE=URI:'):
                        tmp = downloadAndConvert(line)
                fout.write(tmp)

finally:
        fin.close()
        fout.close()

Nutzung

Zur Benutzung legt man dieses Skript in einem Ordner ab, in dem auch die von xing exportierte Datei vcards-XING.vcf liegt und ruft es mit dem Befehl python vcard.py auf. Die konvertierte Datei, die die Bilder direkt enthält, liegt dann mit dem Namen vcards-XING-conv.vcf im gleichen Ordner.

Installation

Die aktuelle Fassung des Skripts befindet sich im Quelltext-Archiv: /vcard/trunk