html/itime.pl


   1 # Internet Time statusbar item.
   2 # See http://www.timeanddate.com/time/internettime.html
   3 
   4 # /STATUSBAR window ADD itime
   5 
   6 use strict;
   7 use Irssi::TextUI;
   8 
   9 use vars qw($VERSION %IRSSI $itime_ratio $current_itime);
  10 
  11 $VERSION = '0.9';
  12 %IRSSI = (
  13     authors     => 'Johan "Ion" Kiviniemi',
  14     contact     => 'ion at hassers.org',
  15     name        => 'itime',
  16     description =>
  17 'Internet Time statusbar item. See http://www.timeanddate.com/time/internettime.html',
  18     license => 'Public Domain',
  19     url     => 'http://ion.amigafin.org/scripts/',
  20     changed => 'Tue Mar 12 22:20 EET 2002',
  21 );
  22 
  23 $itime_ratio   = 1000 / 86400;
  24 $current_itime = get_itime();
  25 
  26 sub get_itime {
  27     my ($s, $m, $h) = gmtime time + 3600;
  28     my $itime = $itime_ratio * (3600 * $h + 60 * $m + $s);
  29     return sprintf '@%03d', int $itime;
  30 }
  31 
  32 sub itime {
  33     my ($item, $get_size_only) = @_;
  34     $item->default_handler($get_size_only, undef, $current_itime, 1);
  35 }
  36 
  37 sub refresh_itime {
  38     my $itime = get_itime();
  39     return if $itime eq $current_itime;
  40     $current_itime = $itime;
  41     Irssi::statusbar_items_redraw('itime');
  42 }
  43 
  44 Irssi::statusbar_item_register('itime', '{sb $0}', 'itime');
  45 Irssi::statusbars_recreate_items();
  46 Irssi::timeout_add(5000, 'refresh_itime', undef);