RobotHash sur un Carnet d'Adresses
Introduction
Cela fait longtemps que je trouvais mon carnet d'adresse un peu tristoune car il manquait de "photo". J'essaie de les ajouter au fur et à mesure mais ... c'est long.
Du coup j'ai eu l'idée de mixer le concept de RobotHash, qui fournit une photo en fonction d'une chaine de caractères unique, et mon serveur de carnet d'adresse sous CARD DAV.
Après une longue période de flemme, je l'ai finalement fait.
J'ai essayé plusieurs méthodes avant d'en trouver une satisfaisante
Finalement il faut exporter son carnet d'adresse au format VCF, disons edn Contacts.vcf
En m'appuyant sur le script d'un wiki Linux comme point de départ. Voici la version finale que j'ai utilisé :)
#!/usr/bin/env bash
#set -x
IFS=$'\n'
tracer=0
nick=""
long=""
mail=""
pic=0
for line in $(grep -Ev "^$|^#" "$1")
do
if [ "$line" != "END:VCARD" ]
then
echo $line
fi
verb=$(echo $line|cut -d ':' -f 1|cut -d ';' -f 1| tr -d '\r')
case $verb in
BEGIN)
tracer=$((tracer + 1))
;;
FN)
long=$(echo $line|cut -d ':' -f 2| tr -d '\r')
;;
X-MS-CARDPICTURE)
pic=1
;;
PHOTO)
pic=1
;;
EMAIL)
mail=$(echo $line|cut -d ':' -f 2| tr -d '\r')
nick=$(echo $mail|cut -d '@' -f 1| tr -d '\r')
;;
END)
tracer=$((tracer + 1))
;;
esac
if [ $tracer -eq 2 ]
then
#echo "For : $nick / $long ($email) "
if [ $pic -eq 0 ]
then
#echo "I didn't found a picture so I download it "
wget -O temp "http://robohash.org/"$nick-$email-$long".jpg"
echo "PHOTO;ENCODING=B:"$(base64 -w0 temp)
fi
echo "END:VCARD"
tracer=0
nick=""
long=""
mail=""
pic=0
fi
done
Une fois l'export fait il suffit de lancer le script ainsi : ./convert Contacts.vcf > Contacts2.vcf
Une fois le script passé le rendu est sympa :
Oh merde ... il est sous Windows Phone !!