Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
60 lines (49 sloc) 1.57 KB
# $Id: awaylogcnt.pl,v 0.2 2004/10/27 19:46 derwan Exp $
#
# Run command '/statusbar window add -after user -priority 1 awaylogcnt' after loading awaylogcnt.pl.
#
use strict;
use vars qw($VERSION %IRSSI);
use Irssi;
$VERSION = '0.2';
%IRSSI = (
authors => 'Marcin Rozycki',
contact => 'derwan@irssi.pl',
name => 'awalogcnt',
description => 'Displays in statusbar number of messages in awaylog',
modules => '',
sbitems => 'awaylogcnt',
license => 'GNU GPL v2',
url => 'http://derwan.irssi.pl',
changed => 'Wed Oct 27 19:46:28 CEST 2004'
);
use Irssi::TextUI;
our $cnt = 0;
our $fname = undef();
Irssi::signal_add( 'log started' => sub {
my $logfile = Irssi::settings_get_str( 'awaylog_file' );
return unless ( $_[0]->{fname} eq $logfile );
($fname, $cnt) = ($logfile, 0);
Irssi::statusbar_items_redraw('awaylogcnt');
});
Irssi::signal_add( 'log stopped' => sub {
return unless ( $_[0]->{fname} eq $fname );
($cnt, $fname) = (0, undef);
Irssi::statusbar_items_redraw('awaylogcnt');
});
Irssi::signal_add( 'log written' => sub {
return unless ( $_[0]->{fname} eq $fname );
$cnt++;
Irssi::statusbar_items_redraw('awaylogcnt');
});
sub awaylogcnt ($$) {
my ($sbitem, $get_size_only) = @_;
unless ( $cnt )
{
$sbitem->{min_size} = $sbitem->{max_size} = 0 if ( ref $sbitem );
return;
}
my $format = sprintf('{sb \%%yawaylog\%%n %d}', $cnt);
$sbitem->default_handler($get_size_only, $format, undef, 1);
}
Irssi::statusbar_item_register('awaylogcnt', undef, 'awaylogcnt');