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