2803
|
1 #!/usr/bin/perl -w
|
|
2 # licq2gaim.pl
|
|
3 #
|
|
4 # Arturo Cisneros, Jr <acjr@hal-pc.org>
|
|
5 # GPL'd
|
|
6
|
|
7 use strict;
|
|
8
|
|
9 my $DIR = "$ENV{HOME}/.licq";
|
|
10 my $GAIM = "$ENV{HOME}/.gaim";
|
|
11 my (@UINS, %USERS) = ();
|
|
12 my $OWNER = "";
|
|
13
|
|
14
|
|
15 get_uins();
|
|
16
|
|
17 foreach my $uin (@UINS) {
|
|
18 $USERS{$uin} = get_alias($uin);
|
|
19 }
|
|
20
|
|
21 get_owner();
|
|
22 write_list();
|
|
23
|
|
24
|
|
25 sub get_uins {
|
|
26
|
|
27 opendir(DIR, "$DIR/users") or die "Couldn't open dir $DIR/users/: $!";
|
|
28 @UINS = grep !/^\./, readdir DIR;
|
|
29 closedir(DIR);
|
|
30 }
|
|
31
|
|
32 sub get_owner {
|
|
33
|
|
34 my @foo = ();
|
|
35
|
|
36 open(FILE, "<$DIR/owner.uin") or die "Couldn't open file $DIR/owner.uin $!";
|
|
37 while(<FILE>) {
|
|
38 next unless /^Uin/;
|
|
39 @foo = split;
|
|
40 last;
|
|
41 }
|
|
42 close(FILE);
|
|
43
|
|
44 $OWNER = $foo[2];
|
|
45 }
|
|
46
|
|
47 sub get_alias {
|
|
48
|
|
49 my @foo = ();
|
|
50
|
|
51 open(FILE, "<$DIR/users/$_[0]") or die "Couldn't open $DIR/users/$_[0]: $!";
|
|
52 while(<FILE>) {
|
|
53 next unless /^Alias/;
|
|
54 @foo = split / /, $_, 3;
|
|
55 last;
|
|
56 }
|
|
57 close(FILE);
|
|
58
|
|
59 return $foo[2];
|
|
60 }
|
|
61
|
|
62 sub write_list {
|
|
63
|
|
64 # Backup Original
|
|
65 if( -e "$GAIM/$OWNER.3.blist") {
|
|
66 rename("$GAIM/$OWNER.3.blist","$GAIM/$OWNER.3.bak");
|
|
67 }
|
|
68
|
|
69 # Write new file
|
|
70 open(FILE, ">$GAIM/$OWNER.3.blist") or die "Couldn't open file for writing: $!";
|
|
71 print FILE "m 1\n";
|
|
72 print FILE "g ICQBuddies\n";
|
|
73 while(my($key, $value) = each %USERS) {
|
|
74 $key =~ s/\.uin$//;
|
|
75 print FILE "b $key:$value";
|
|
76 }
|
|
77 close(FILE);
|
|
78 }
|