use strict;
use Irssi;
use Socket;
use vars qw($VERSION %IRSSI);
$VERSION = '1.00';
%IRSSI = (
author => 'Saulius',
contact => 'saulius@tornado.ktu.lt',
name => 'temperatura',
description => 'Temperatura kaune !temp',
license => 'Free',
changed => '2003-11-07',
);
my $delay = 25;
my %floodi = ();
sub httpget {
my $ip = ( gethostbyname( $_[0] ) )[4];
socket( S, 2, 1, 6 );
bind( S, sockaddr_in( 0, INADDR_ANY ) );
connect( S, sockaddr_in( 80, $ip ) );
select(S);
$| = 1;
select(STDOUT);
print S "GET $_[1] HTTP/1.0\n\n";
my @request = <S>;
close(S);
return $request[6];
}
sub msg_public {
my ( $server, $msg, $nick, $address, $target ) = @_;
if ( ( ( $target eq "#if-2/14" ) || ( $target eq "#16barakas" ) )
&& ( $msg =~ /^\!temp$/ ) )
{
if ( defined $floodi{$target} ) {
if ( time - $floodi{$target} < $delay ) { return }
else { undef $floodi{$target} }
}
$floodi{$target} = time;
my $query = httpget( "195.14.162.13", "/cgi-bin/c.cgi?c=t&ver=1.03" );
if ( $query =~ /Temperature\:/ ) {
$query = ( split( /:/, $query ) )[1];
chop($query);
$server->command(
"MSG $target \x037,5\x02temp. kaune:\x031,15 $query \xB0C");
}
}
}
sub msg_own_public {
my ( $server, $msg, $target ) = @_;
msg_public( $server, $msg, $server->{nick}, 0, $target );
}
Irssi::signal_add( 'message public', 'msg_public' );
Irssi::signal_add( 'message own_public', 'msg_own_public' );
|