html/licq.pl


   1 $VERSION = "0.5";
   2 %IRSSI = (
   3     authors     => "Jari Matilainen",
   4     contact     => "jmn98015\@student.mdh.se",
   5     name        => "licq",
   6     description => "Licq statusbar thingy",
   7     license     => "Public Domain",
   8     url         => "http://jari.cjb.net,http://irssi.org,http://scripts.irssi.de",
   9 );
  10 
  11 use Irssi::TextUI;
  12 
  13 my $result;
  14 my $refresh_tag;
  15 my $rdir = "$ENV{'HOME'}/.licq/users/";
  16 
  17 sub licq {
  18   my ($item,$get_size_only) = @_;
  19   $result = 0;
  20   if(-e $rdir) {
  21   	opendir(DIR, $rdir);
  22 
  23   	while ( $_ = readdir(DIR) ) {
  24 		next if(($_ eq ".") or ($_ eq ".."));
  25 
  26 		my $filename = "$rdir" . "$_";
  27 		if(-e $filename) {
  28 			open(FILE, $filename);
  29   			$_ = "";
  30   			$_ = <FILE> until /NewMessages/;
  31   			my @total = split / /, $_;
  32   			if(defined $total[2]) {
  33 				$result += $total[2];
  34 			}
  35 		}
  36   	}
  37   }
  38 
  39   closedir(DIR);
  40 
  41   $item->default_handler($get_size_only, undef, $result, 1);
  42 }
  43 
  44 sub refresh_licq {
  45   Irssi::statusbar_items_redraw('licq');
  46 }
  47 
  48 sub init_licq {
  49 	my $time = Irssi::settings_get_int('licq_refresh_time');
  50 	$rdir = Irssi::settings_get_str('licq_path');
  51 	Irssi::timeout_remove($refresh_tag) if ($refresh_tag);
  52 	$refresh_tag = Irssi::timeout_add($time*1000, 'refresh_licq', undef);
  53 }
  54 
  55 Irssi::settings_add_int('LICQ','licq_refresh_time',10);
  56 Irssi::settings_add_str('LICQ','licq_path',$rdir);
  57 Irssi::statusbar_item_register('licq', '{sb ICQ: $0-}', 'licq');
  58 
  59 init_licq();
  60 Irssi::signal_add('setup changed','init_licq');
  61 refresh_licq();
  62 
  63 # EOF