]> git.donarmstrong.com Git - irc.git/blob - .irssi/scripts/anotherway.pl
* Interpolate action properly in I want
[irc.git] / .irssi / scripts / anotherway.pl
1 #!/usr/bin/perl
2 #
3 # by Stefan Tomanek <stefan@pico.ruhr.de>
4
5 use strict;
6 use vars qw($VERSION %IRSSI);
7 $VERSION = "2003010201";
8 %IRSSI = (
9     authors     => "Stefan 'tommie' Tomanek",
10     contact     => "stefan\@pico.ruhr.de",
11     name        => "anotherway",
12     description => "Another auto away script",
13     license     => "GPLv2",
14     changed     => "$VERSION",
15 );
16 use Irssi 20020324;
17 use vars qw($timer @signals);
18
19 @signals = ('message own_public', 'message own_private');
20
21 sub go_away {
22     #Irssi::print "%R>>%n Going away...$timer";
23     Irssi::timeout_remove($timer);
24     my $reason = Irssi::settings_get_str("anotherway_reason");
25     my @servers = Irssi::servers();
26     return unless @servers;
27     Irssi::signal_remove($_ , "reset_timer") foreach (@signals);
28     $servers[0]->command('AWAY '.$reason);
29     Irssi::signal_add($_ , "reset_timer") foreach (@signals);
30 }
31
32 sub reset_timer {
33     #Irssi::print "%R>>%n RESET";
34     Irssi::signal_remove($_ , "reset_timer") foreach (@signals);
35     foreach (Irssi::servers()) {
36         $_->command('AWAY') if $_->{usermode_away};
37         last;
38     }
39     #Irssi::signal_add('nd', "reset_timer");
40     Irssi::timeout_remove($timer);
41     my $timeout = Irssi::settings_get_int("anotherway_timeout");
42     $timer = Irssi::timeout_add($timeout*1000, "go_away", undef);
43     Irssi::signal_add($_, "reset_timer") foreach (@signals);
44 }
45
46 Irssi::settings_add_str($IRSSI{name}, 'anotherway_reason', 'a-nother-way');
47 Irssi::settings_add_int($IRSSI{name}, 'anotherway_timeout', 300);
48
49 {
50     Irssi::signal_add($_, "reset_timer") foreach (@signals);
51     reset_timer();
52 }
53
54 print CLIENTCRAP '%B>>%n '.$IRSSI{name}.' '.$VERSION.' loaded';