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