licq2gaim.pl

Mon, 18 Aug 2003 01:03:43 +0000

author
Christian Hammond <chipx86@chipx86.com>
date
Mon, 18 Aug 2003 01:03:43 +0000
changeset 6485
3c7ba18e32f1
parent 2803
ffd6dfe6e869
permissions
-rwxr-xr-x

[gaim-migrate @ 6999]
Removed the old event system and replaced it with a much better signal
system. There will most likely be some bugs in this, but it seems to be
working for now. Plugins can now generate their own signals, and other
plugins can find those plugins and connect to them. This could give
plugins a form of IPC. It's also useful for other things. It's rather
flexible, except for the damn marshalling, but there's no way around that
that I or the glib people can see.

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

mercurial