/var/www/www.irssi.org-old/scripts/html/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';