Now the systrayicon change it's color when a download is in progress. I simply change...
[kdenetwork.git] / ksirc / advfollow.pl
blobc7254641397171537c204266e0a90d42d0738f37
3 &print("*** Loading advance follow...");
5 @K_VAL_COL = (0,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
7 print "*** Using colours:";
8 foreach (@K_VAL_COL) {
9 print "~$_ $_";
11 print "\n";
13 %K_FOLLOW = ();
15 $KADV_ON = 1;
17 sub sum_nick {
18 my $n = shift;
19 my $sum = 0;
21 $n =~ s/^(.*)[-_|].*$/$1/;
23 foreach (split(//, $n)) {
24 $sum += ord;
26 return $sum;
30 sub hook_ksircadvfollow {
31 if($_[0] =~ /<~n(\w+)~c>/){
32 my $n = $1;
33 return if $n eq $nick;
34 if(!defined($K_FOLLOW{$n})){
35 $K_FOLLOW{$n} = $K_VAL_COL [ &sum_nick($n) % $#K_VAL_COL];
37 my $c = $K_FOLLOW{$n};
38 $_[0] =~ s/<~n\w+~c>/<~$c$n~c>/;
40 elsif ($_[0] =~ /~\* (\w+) \w+/) {
41 my $n = $1;
42 return if $n eq $nick;
43 if(!defined($K_FOLLOW{$n})){
44 $K_FOLLOW{$n} = $K_VAL_COL [ &sum_nick($n) % $#K_VAL_COL];
46 my $c = $K_FOLLOW{$n};
47 $_[0] =~ s/\* \w+ (\w+)/\* ~$c$n~c $1/;
50 addhook("print", "ksircadvfollow");
52 $K_ADV_LENGTH = 0;
54 sub kadv_save {
55 &kadv_load();
56 return if($K_ADV_LENGTH == (scalar %K_FOLLOW));
58 open(SAVE, ">$ENV{HOME}/.adv_follow") || return;
59 my $n, $v;
60 while(($n, $v) = each %K_FOLLOW){
61 print SAVE "$n\t$v\n";
63 close SAVE;
64 $K_ADV_LENGTH = scalar %K_FOLLOW;
67 sub kadv_load {
68 open(SAVE, "<$ENV{HOME}/.adv_follow") || return;
69 while(<SAVE>){
70 chomp;
71 my ($n, $v) = split(/\t/, $_);
72 if(!defined($K_FOLLOW{$n})){
73 $K_FOLLOW{$n} = $v;
77 close SAVE;
80 &kadv_load();
81 sub kadv_timer_save {
82 &timer(300, "&kadv_timer_save()", 324325);
83 &kadv_save();
85 &timer(300, "&kadv_timer_save()", 324325);
88 sub cmd_afflush {
89 %K_FOLLOW = ();
92 addhelp("afflush", "Usaage: afflush\nDelete all coloured nicks");
93 addcmd("afflush");
96 sub cmd_afnick {
97 &getarg;
98 my $n = $newarg;
99 &getarg;
100 if($newarg){
101 $K_FOLLOW{$n} = $newarg;
103 else {
104 $K_FOLLOW{$n} = $K_VAL_COL [int (rand scalar (@K_VAL_COL))];
108 addhelp("afnick", "Usage: afnick nick <col>\nResets the colour for nick. If col is specefied it is set to col. Random otherwise.");
109 addcmd("afnick");
111 sub cmd_afoff {
112 remhook("print", "ksircadvfollow");
114 addhelp("afoff", "Usage: afoff\nTurn off advance follow");
115 addcmd("afoff");
117 sub cmd_afon {
118 addhook("print", "ksircadvfollow");
120 addhelp("afon", "Usage: afon\nTurn on advange follow");
121 addcmd("afon");
123 print "*** Advance follow Loaded\n";
124 print "*** New commands: /afflush /afnick /afoff /afon\n";