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);