#!/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;