diff options
| author | Alexander Færøy | 2014-05-31 13:10:46 +0200 | 
|---|---|---|
| committer | Alexander Færøy | 2014-05-31 13:10:46 +0200 | 
| commit | 2d0759e6ca5767b48bcc85bf38c2c43d5f0b63b1 (patch) | |
| tree | 1c5e6d817c88e67b46e216a50e0aef5428bf63df /scripts/upgradeinfo.pl | |
| parent | 2d080422d79d1fd49d6c5528593ccaaff9bfc583 (diff) | |
| download | scripts.irssi.org-2d0759e6ca5767b48bcc85bf38c2c43d5f0b63b1.tar.bz2 | |
Import scripts from scripts.irssi.org
Diffstat (limited to 'scripts/upgradeinfo.pl')
| -rw-r--r-- | scripts/upgradeinfo.pl | 132 | 
1 files changed, 132 insertions, 0 deletions
| diff --git a/scripts/upgradeinfo.pl b/scripts/upgradeinfo.pl new file mode 100644 index 0000000..eb28057 --- /dev/null +++ b/scripts/upgradeinfo.pl @@ -0,0 +1,132 @@ +# upgradeinfo - irssi 0.8.6.CVS  +# +#    $Id: upgradeinfo.pl,v 1.7 2003/02/04 02:29:57 peder Exp $ +# +# Copyright (C) 2002, 2003 by Peder Stray <peder@ninja.no> +# + +use strict; +use Irssi 20021204.1123; +use Irssi::TextUI; + +# ======[ Script Header ]=============================================== + +use vars qw{$VERSION %IRSSI}; +($VERSION) = '$Revision: 1.7 $' =~ / (\d+\.\d+) /; +%IRSSI = ( +          name        => 'upgradeinfo', +          authors     => 'Peder Stray', +          contact     => 'peder@ninja.no', +          url         => 'http://ninja.no/irssi/upgradeinfo.pl', +          license     => 'GPL', +          description => 'Statusbaritem notifying you about updated binary', +	  sbitems     => 'upgradeinfo', +         ); + +# ======[ Variables ]=================================================== + +my($load_time) = 0;		# modification time of binary at load +my($file_time) = 0;		# modification time of binary file +my($timer) = 0;			# ID of current timer + +# ======[ Commands ]==================================================== + +# --------[ UPGRADEINFO ]----------------------------------------------- + +sub cmd_upgradeinfo { +    my($param,$serv,$chan) = @_; + +    print CLIENTCRAP sprintf ">> load: %s", scalar localtime $load_time; +    print CLIENTCRAP sprintf ">> file: %s", scalar localtime $file_time; + +} + +# ======[ Signal Hooks ]================================================ + +# --------[ sig_setup_changed ]----------------------------------------- + +sub sig_setup_changed { +    my($interval) = Irssi::settings_get_int('upgrade_check_interval'); + +    Irssi::timeout_remove($timer); + +    if ($interval < 1) { +	$interval = 0; +    } + +    return unless $interval; + +    $interval *= 1000; +    $timer = Irssi::timeout_add($interval, 'ui_check' , undef); +} + +# ======[ Statusbar Hooks ]============================================= + +# --------[ sb_upgradeinfo ]-------------------------------------------- + +sub sb_upgradeinfo { +    my($item, $get_size_only) = @_; +    my $format = ""; +    my($time); +    my($timefmt) = Irssi::settings_get_str('upgrade_time_format'); +     +    $time = $file_time - $load_time; +     +    if ($time) { +	$time = sprintf($timefmt,  +			$time/60/60/24, +			$time/60/60%24, +			$time/60%60, +			$time%60 +		       ); +	$time =~ s/^(0+\D+)+//; +	$format = "{sb %r$time%n}"; +    } +     +    $item->default_handler($get_size_only, $format, undef, 1); +} + +# ======[ Timers ]====================================================== + +# --------[ ui_check ]-------------------------------------------------- + +sub ui_check { +    $file_time = (stat Irssi::get_irssi_binary)[9]; + +    Irssi::statusbar_items_redraw('upgradeinfo'); +} + +# ======[ Setup ]======================================================= + +# --------[ Register commands ]----------------------------------------- + +Irssi::command_bind('upgradeinfo', 'cmd_upgradeinfo'); + +# --------[ Register formats ]------------------------------------------ + +# --------[ Register settings ]----------------------------------------- + +Irssi::settings_add_int('upgrade', 'upgrade_check_interval', 300); +Irssi::settings_add_str('upgrade', 'upgrade_time_format', '%d+%02d:%02d'); + +# --------[ Register signals ]------------------------------------------ + +Irssi::signal_add('setup changed', 'sig_setup_changed'); + +# --------[ Register statusbar items ]---------------------------------- + +Irssi::statusbar_item_register('upgradeinfo', undef, 'sb_upgradeinfo'); + +# --------[ Other setup ]----------------------------------------------- + +$load_time = (stat Irssi::get_irssi_binary)[9]; +$file_time = $load_time; + +sig_setup_changed; + +# ======[ END ]========================================================= + +# Local Variables: +# header-initial-hide: t +# mode: header-minor +# end: | 
