On Thu Feb 21, 2002 at 01:27:28PM +0200, Radek Spacil wrote: > If there will not be vCard, maybe there will be different one > to which Evolution is able to export...
There is a 'vcard2abook' perl script which I /believe/ comes with
abook (in contrib/ in the tarball). It's attached below in case it
doesn't come with abook.
Note: I have _never_used_it_, and don't
know what'll happen if you try it.
--
Martin Karlsson
#!/usr/bin/perl -w
my $timestamp= "Time-stamp: \"vcard2abook.pl was last updated on Sun, 17 Dec 2000
10:34am\"";
#==============================================================================*
# vcard2abook.pl by jeff covey <[EMAIL PROTECTED]> *
# *
# this script has two main features: *
# *
# 1. it converts a file containing addressbook entries in vcard format to *
# one containing entries in abook format. *
# 2. it almost has more comments than code. *
# *
# This program is free software; you can redistribute it and/or modify *
# it under the terms of the GNU General Public License as published by *
# the Free Software Foundation; either version 2 of the License, or *
# (at your option) any later version. *
# *
# This program is distributed in the hope that it will be useful, *
# but WITHOUT ANY WARRANTY; without even the implied warranty of *
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
# GNU General Public License for more details. *
# *
# You should have received a copy of the GNU General Public License *
# along with this program; if not, write to the Free Software *
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
#==============================================================================*
use strict;
($#ARGV >= 1) or die
"usage: vcard2abook.pl <vcard input file> <abook output file>\noutput file will be
overwritten!\n";
my $vcards="$ARGV[0]";
my $abook ="$ARGV[1]";
my $key;
my %conversions = (
"FN" => "name=",
"NICKNAME" => "nick=",
"EMAIL" => "email=",
"ORG" => "notes=",
"NOTE" => "notes=",
"URL" => "url=",
"TEL;HOME" => "phone=",
"TEL;PREF" => "phone=",
"TEL;VOICE" => "phone=",
"TEL;MSG" => "phone=",
"TEL;VIDEO" => "phone=",
"TEL;MODEM" => "phone=",
"TEL;ISDN" => "phone=",
"TEL;WORK" => "workphone=",
"TEL;CELL" => "mobile=",
"TEL;PAGER" => "mobile=",
"TEL;CAR" => "mobile=",
"TEL;FAX" => "fax=",
);
open (VCARDS,"$vcards") or quit("couldn't open $vcards");
open (ABOOK,">$abook") or quit("couldn't open $abook for writing");
while (<VCARDS>) {
if (/^\s*$/) { }
elsif (/^BEGIN:VCARD/i) { print ABOOK "[]\n"; }
elsif (/^END:VCARD/i) { print ABOOK "\n"; }
else {
chomp; my @sections=split /:/, $_, 2;
if ($sections[0] =~ /^ADR/i) {
my @fields=split /;/, $sections[1];
if ($fields[2]) {print ABOOK "address=$fields[2]\n";}
if ($fields[3]) {print ABOOK "city=$fields[3]\n"; }
if ($fields[4]) {print ABOOK "state=$fields[4]\n"; }
if ($fields[5]) {print ABOOK "zip=$fields[5]\n"; }
if ($fields[6]) {print ABOOK "country=$fields[6]\n";}
}
else {
foreach $key (keys %conversions) {
if ($sections[0] =~ /^$key/i) {
print ABOOK "$conversions{$key}$sections[1]\n";
}
}
}
}
}
close (VCARDS) or quit("couldn't close $vcards");
close (ABOOK) or quit("couldn't close $abook");
sub quit {
print "whoops! $_[0]:\n $!\n"; die;
}
msg24629/pgp00000.pgp
Description: PGP signature
