Mercurial > pidgin
changeset 1741:7506587a394d
[gaim-migrate @ 1751]
thanks decklin :)
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Sat, 21 Apr 2001 23:53:06 +0000 |
parents | 72a30a73f689 |
children | 34369ed4e212 |
files | gaim2blt.pl |
diffstat | 1 files changed, 42 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/gaim2blt.pl Sat Apr 21 23:17:30 2001 +0000 +++ b/gaim2blt.pl Sat Apr 21 23:53:06 2001 +0000 @@ -1,32 +1,44 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w +# Original by Andy Harrison, +# Rewrite by Decklin Foster, +# Available under the GPL. + +package Gaim2Blt; +use strict; +use Getopt::Std; +use vars qw(%opts $in_group); + +getopts('s:', \%opts); +die "usage: $0 -s 'screen name' gaim.buddy\n" unless $opts{s}; -## gaim buddy list to aim blt format converter -my $top = 1; -if ($ARGV[0] && $ARGV[1]) { - open (FILE,$ARGV[0]); - print "Config {\n version 1\n}\nUser {\n screename $ARGV[1]\n}\nBuddy {\n list {\n"; - foreach $line (<FILE>) { - chomp ($line); - $line =~ s/^ +//; ## strip any preceding spaces - next unless $line =~ /^[bg]/; ## Ignore everything but the b and g lines - @buddy = split(//,$line); ## strip off the first 2 chars of the line. - shift @buddy; ## crappy way to do it, but I didn't want to - shift @buddy; ## mess up screen names with spaces in them. - foreach $char (@buddy) { - $buddy .= $char; - } - @screenname = split(/:/,$buddy); ## split off the aliases - - if ($line =~ /^g/) { - print " }\n" unless $top; - print " $screenname[0] {\n"; - $top = 0; - } elsif ($line =~ /^b/) { - print " $screenname[0]\n"; - } - $buddy = undef; - } - print " }\n }\n}\n"; -} else { - print "\n\n\n\tExample:\n\n\t\tgaim2blt.pl gaim.buddy.file YourScreenName\n\n\n\n"; +print <<"EOF"; +Config { + version 1 +} +User { + screenname "$opts{s}" } +Buddy { + list { +EOF + +while (<>) { + chomp; + my ($type, $args) = split ' ', $_, 2; + next unless $type; + + if ($type eq 'g') { + print " }\n" if ($in_group); + print " $args {\n"; + $in_group = 1; + } elsif ($type eq 'b') { + my ($buddy, $alias) = split /:/, $args; + print qq( "$buddy"\n); + } +} + +print <<"EOF"; + } + } +} +EOF