html/seti.pl
1 # This is not a well written script, but it works. I hope.
2
3 use Irssi;
4 use vars qw($VERSION %IRSSI);
5
6 $VERSION = '0.1';
7 %IRSSI = (
8 authors => 'optical',
9 contact => 'optical@linux.nu',
10 name => 'SETI@home info',
11 description => 'Tell ppl how far you\'ve gotten with you SETI\@home workunit.',
12 license => 'GPL',
13 url => 'http://optical.kapitalet.org/seti/',
14 changed => 'Sat Jul 13 12:03:42 CEST 2002',
15 commands => '/seti <#channel>|<nick>',
16 note => 'Make sure you set the seti_state_sah with /set'
17 );
18
19 sub seti_info {
20
21 $WHERES_SETI_STATE_SAH = Irssi::settings_get_str('seti_state_sah');
22
23 my ($data, $server, $witem) = @_;
24 $args =~ s/\s+$//;
25
26 open(INFO, "$WHERES_SETI_STATE_SAH");
27 for($tmp = 0; $tmp < 5; $tmp++) {
28 $line = <INFO>;
29 }
30 close(INFO);
31 $proc = substr($line, 7, 4)/100;
32 my $output = "progress of this SETI@home workunit: $proc%";
33
34 if($data)
35 {
36 $server->command("MSG $data $output");
37 }
38 elsif($witem && ($witem->{type} == "QUERY" ||
39 $witem->{type} == "CHANNEL"))
40 {
41 $witem->command("MSG ".$witem->{name}." $output");
42 }
43 else
44 {
45 Irssi::print("$output");
46 }
47 }
48
49 Irssi::command_bind('seti', 'seti_info');
50 Irssi::settings_add_str('misc', 'seti_state_sah', '~/setiathome-3.03.i386-pc-linux-gnu-gnulibc2.1/state.sah');