1# Internet Time statusbar item. 2# See http://www.timeanddate.com/time/internettime.html 3 4# /STATUSBAR window ADD itime 5 6use strict; 7use Irssi::TextUI; 8 9use 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 sbitems => 'itime', 19 license => 'Public Domain', 20 url => 'http://ion.amigafin.org/scripts/', 21 changed => 'Tue Mar 12 22:20 EET 2002', 22); 23 24$itime_ratio = 1000 / 86400; 25$current_itime = get_itime(); 26 27sub get_itime { 28 my ($s, $m, $h) = gmtime time + 3600; 29 my $itime = $itime_ratio * (3600 * $h + 60 * $m + $s); 30 return sprintf '@%03d', int $itime; 31} 32 33sub itime { 34 my ($item, $get_size_only) = @_; 35 $item->default_handler($get_size_only, undef, $current_itime, 1); 36} 37 38sub refresh_itime { 39 my $itime = get_itime(); 40 return if $itime eq $current_itime; 41 $current_itime = $itime; 42 Irssi::statusbar_items_redraw('itime'); 43} 44 45Irssi::statusbar_item_register('itime', '{sb $0}', 'itime'); 46Irssi::statusbars_recreate_items(); 47Irssi::timeout_add(5000, 'refresh_itime', undef); 48