changeset 524:9ec08f6bb944

[gaim-migrate @ 534] Added script to convert new winaim blt format to gaim/toc buddy list committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 25 Jul 2000 08:27:51 +0000
parents 023c3851db0a
children 5dbca28e7138
files Makefile.am buddytrans2
diffstat 2 files changed, 103 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.am	Tue Jul 25 05:09:14 2000 +0000
+++ b/Makefile.am	Tue Jul 25 08:27:51 2000 +0000
@@ -1,6 +1,6 @@
 
 EXTRA_DIST = gaim.spec.in gaim_applet.gnorba gaim.desktop gaim_applet.desktop gaim_applet.soundlist \
-	buddytrans README.plugins
+	buddytrans buddytrans2 README.plugins
 
 if GNOMEAPPLET
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buddytrans2	Tue Jul 25 08:27:51 2000 +0000
@@ -0,0 +1,102 @@
+#!/usr/bin/perl -w
+#
+#  gaim
+# 
+#  Copyright (C) 1998 - 2000, Mark Spencer <markster@marko.net>
+# 
+#  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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# 
+#  ---
+#
+#  Buddy List Conversion Script Written By: John Assalone <assalonej@kpe.com>
+#        Modifications by: Rob Flynn <IM: Rob Flynn> <rflynn@blueridge.net>
+#	 Obfuscated by: Schuyler Erle <IM: sderle> <schuyler@tridity.org>
+#
+#  Use this script to convert the new WinAIM buddy list format to gaim's format.
+#
+#  Syntax: ./buddytrans buddy.list gaimlist
+#
+
+use strict;
+use 5.003;
+
+sub translate_lst
+{
+	my $src = shift;
+	my ($line, $field, $name, $out);
+
+	$out = "m 1\n";
+
+	for $line (grep(/\w/o, split(/[\r\n]+/o, $src))) { 
+		($field, $name) = ($line =~ /^\s*(\w)\w*\s+(.+)$/go);
+		$name =~ y/"//d;
+		$out .= "$field $name\n" if $field and $name;
+	}
+
+	$out
+}
+
+sub translate_blt
+{
+	my $src		= shift;
+	my $out		= "m 1\n";
+	my $grp;
+
+	$src =~ s/^.*?Buddy\s+{.*?list\s+{//gos;
+
+	while ( $src =~ / } | 
+		(?: "([^"]+)" | (\S+) ) \s* 
+		(?: {(.+?)} | ([^\n]+) ) \s*/gosx ) { 
+
+		last unless defined( $grp = $1 || $2 );
+			
+		$out .= join( "\n", "g $grp", 
+			map 	{ "b $_" } 
+			grep 	{ defined($_) and /\S/o } 
+			split	( /"([^"]+)"|\s+/, ($3 || $4) ) ) 
+			. "\n" 
+	}
+
+	$out;
+}
+
+sub buddy_trans
+{
+	my ($src_file, $dest_file) = @_;
+
+	die "Syntax: $0 buddy.lst gaimlist\n"
+		unless ($src_file and $dest_file);
+	
+	
+	open SOURCE, "<$src_file" or die "$!: $src_file\n";
+	my $src = do { local $/ = undef; <SOURCE> };
+	close SOURCE;
+
+	if (-e $dest_file) {
+    		print STDERR "$dest_file already exists! Continue? ";
+    		unless (-t and <STDIN> =~ /^y/io) {
+			print STDERR "Aborted.\n";
+			exit -1
+		}
+	} 
+
+	open DEST, ">$dest_file" or die "$!: $dest_file\n";
+	print DEST ($src =~ /{/os) ? translate_blt($src) : translate_lst($src);
+	close DEST;
+
+	0;
+}
+
+buddy_trans( @ARGV );