From 5573ae785444d0e807431b36e7868e9fafbf7238 Mon Sep 17 00:00:00 2001 From: Paul Mangan Date: Sat, 25 May 2002 10:10:05 +0000 Subject: [PATCH] kmail to sylpheed addressbook convertor --- tools/Makefile.am | 1 + tools/kmail2sylpheed.pl | 212 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 213 insertions(+) create mode 100644 tools/kmail2sylpheed.pl diff --git a/tools/Makefile.am b/tools/Makefile.am index 7bedeb341..fd9ea8487 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -3,6 +3,7 @@ EXTRA_TOOLS = \ filter_conv.pl \ gif2xface.pl \ gpg-sign \ + kmail2sylpheed.pl \ ldif-to-xml.py \ newscache_clean.pl \ sylpheed-switcher \ diff --git a/tools/kmail2sylpheed.pl b/tools/kmail2sylpheed.pl new file mode 100644 index 000000000..52789d2ad --- /dev/null +++ b/tools/kmail2sylpheed.pl @@ -0,0 +1,212 @@ +#!/usr/bin/perl + +# * Copyright © 2002 Paul Mangan +# * +# * This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +## script name : kmail2sylpheed.pl + +## script purpose : convert a Kmail addressbook into a Sylpheed addressbook + +use Getopt::Long; + +$kmailfile = ''; + +GetOptions("kmailfile=s" => \$kmailfile); + +$time = time; + +$sylph_addr = "\n"; +$sylph_addr .= "\n"; + +chdir; +#chdir '.sylpheed' || die("You don't appear to have Sylpheed installed\n"); + +opendir(SYLPHEED, ".sylpheed") || die("Can't open .sylpheed directory\n"); + push(@cached,(readdir(SYLPHEED))); +closedir(SYLPHEED); + +foreach $cached (@cached) { + if ($cached =~ m/^addrbook/ && $cached =~ m/[0-9].xml$/) { + push(@addr, "$cached"); + } +} + +@sorted = sort {$a cmp $b} @addr; +$last_one = pop(@sorted); +$last_one =~ s/^addrbook-//; +$last_one =~ s/.xml$//; +$last_one++; +$new_addrbk = "addrbook-"."$last_one".".xml"; + +open (KFILE, "<$kmailfile") || die("Can't find the kmail file\n"); + @kmaillines = ; +close KFILE; + +$dross = shift(@kmaillines); + +foreach $kmailline (@kmaillines) { + (@kmaildata) = split(/,/,$kmailline); + foreach $kmaildata (@kmaildata) { + $kmaildata =~ s/^"//; + $kmaildata =~ s/"$//; + $kmaildata =~ s/"/"/g; + $kmaildata =~ s/&/&/g; + $kmaildata =~ s/'/'/g; + $kmaildata =~ s//>/g; + } + $sylph_addr .= " \n" + ." \n"; + $time++; + $sylph_addr .= "
\n" + ." \n"; + if ($kmaildata[13] ne "" || $kmaildata[9] ne "" || $kmaildata[21] ne "" || + $kmaildata[16] ne "" || $kmaildata[5] ne "" || $kmaildata[24] ne "" || + $kmaildata[19] ne "" || $kmaildata[12] ne "" || $kmaildata[10] ne "" || + $kmaildata[4] ne "" || $kmaildata[2] ne "" || $kmaildata[11] ne "" || + $kmaildata[3] ne "" || $kmaildata[14] ne "" || $kmaildata[22] ne "" || + $kmaildata[17] ne "" || $kmaildata[20] ne "" || $kmaildata[15] ne "" || + $kmaildata[23] ne "" || $kmaildata[18] ne "") { + $sylph_addr .= " \n"; + + if ($kmaildata[3] ne "" || $kmaildata[2] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[3] $kmaildata[0] $kmaildata[2] $kmaildata[1]\n"; + } + if ($kmaildata[15] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[15]\n"; + } + if ($kmaildata[16] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[16]\n"; + } + if ($kmaildata[17] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[17]\n"; + } + if ($kmaildata[18] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[18]\n"; + } + if ($kmaildata[19] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[19]\n"; + } + if ($kmaildata[10] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[10]\n"; + } + if ($kmaildata[12] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[12]\n"; + } + if ($kmaildata[11] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[11]\n"; + } + if ($kmaildata[14] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[14]\n"; + } + if ($kmaildata[5] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[5]\n"; + } + if ($kmaildata[4] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[4]\n"; + } + if ($kmaildata[20] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[20]\n"; + } + if ($kmaildata[21] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[21]\n"; + } + if ($kmaildata[22] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[22]\n"; + } + if ($kmaildata[23] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[23]\n"; + } + if ($kmaildata[24] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[24]\n"; + } + if ($kmaildata[9] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[9]\n"; + } + if ($kmaildata[13] ne "") { + $time++; + $sylph_addr .= " " + ."$kmaildata[13]\n"; + } + $sylph_addr .= " \n"; + } + $sylph_addr .= " \n"; + $time++; +} +$sylph_addr .= "\n"; + +open (NEWADDR, ">.sylpheed/$new_addrbk"); +print NEWADDR $sylph_addr; +close NEWADDR; + +open (ADDRIN, "<.sylpheed/addrbook--index.xml") || die("can't open addrbook--index.xml"); + @addrindex_file = ; +close ADDRIN; + +foreach $addrindex_line (@addrindex_file) { + if ($addrindex_line =~ m/<\/book_list>/) { + $rewrite_addrin .= " \n" + ." \n"; + } else { + $rewrite_addrin .= "$addrindex_line"; + } +} + +open (NEWADDRIN, ">.sylpheed/addrbook--index.xml"); +print NEWADDRIN "$rewrite_addrin"; +close NEWADDRIN; + +print "\nYou have sucessfully converted your Kmail addressbook\n"; +exit; -- 2.25.1