FreeHAL
view release on metacpan or search on metacpan
jeliza-auto-client.pl view on Meta::CPAN
eval {
local $SIG{__DIE__};
local $SIG{ALRM} = sub { die @_; } ;
alarm(3);
if ( $sock ) {
print $sock "GET:OFFERS\n";
<$sock>;
my $res = <$sock>;
# print $res;
(my $offers_str = $res) =~ s/[\r\n]//gm;
$offers_str =~ s/OFFERS[:]//gm;
@offers = split /[,]/, $offers_str;
$sock->shutdown(2);
# print Dumper \@offers;
return ('addr_of_random', grep { ! /OFFER/} @offers);
}
alarm(0);
};
$sock->shutdown(2) if $sock;
return ('addr_of_random', grep { ! /OFFER/} @offers);
}
sub random_server {
#open my $serverfile, '<', 'servers.txt';
#my @servers = <$serverfile>;
#map { s/[\r\n]//gm } @servers;
#@servers = map { (split /[,]/, $_)[0] } @servers;
#close $serverfile;
#return $servers[ rand(@servers) ];
my @offers = all_servers();
return $offers[rand(@offers)];
}
our $cgi = new CGI;
my $p_ask = $cgi->param('ask');
$p_ask =~ s/\%([A-Fa-f0-9]{4})/pack('C', hex($1))/seg;
$p_ask =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
my $use_speech = $cgi->param('speech');
my $default_server = $localhost; # official freehal server
my ($p_server) = $cgi->param('server') || random_server() || $default_server;
my $user = $ENV{'REMOTE_ADDR'} . '/' . ($p_ask ? 1 : 0);
print "ask:$p_ask\n";
my $speech_on = 'Sprachausgabe ein';
my $speech_off = 'Sprachausgabe aus';
use IO::Socket;
print "Expires: Mon, 26 Jul 1997 05:00:00 GMT\n";
print "Cache-Control: no-cache, must-revalidate\n";
print "Content-Type: text/html; charset=ISO-8859-1\r\n\r\n";
print qq{
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>FreeHAL - JEliza - Die Opensource KI - Online Demo</title>
<link rel="stylesheet" type="text/css" media="screen" href="http://www.freehal.org/styles.css" />
<style type="text/css">
#everything {
position: absolute !important;
top: 10px !important;
left: 10px !important;
right: 10px !important;
color: #222222 !important;
padding: 0px !important;
margin: 0px !important;
z-index: 4 !important;
}
html, body {
margin:0;
padding:0;
height:100%;
overflow:hidden;
}
</style>
</head>
<body style="background-color: white !important;" onload="document.getElementById('a').focus();">
<form method="get" width="100%" action="jeliza-auto-client.pl">
<div style="position: fixed; left: 0; top: 0; width: 100%; height: 1.5em; background-color: #fff4b6 !important;
vertical-align: middle !important; text-align: left; padding-left: 10px; padding-right: 10px !important;
border-bottom: 1px solid #fbeb94;
">
<div style="float: right; display: inline; padding-right: 20px !important;">
You are connected to
<select name="server">
};
#open my $serverfile, '<', 'servers.txt';
#while (defined( my $line = <$serverfile> )) {
for my $line (all_servers()) {
chomp $line;
my ($ip, $server) = ($line, $line); # = split /[,]/, $line;
print ' <option value="'.$server.'" '
. ( $p_server eq $ip ? 'selected="selected"' : '' )
. "> $server </option>";
}
print qq{
</select>
You are User $user</div>
<a href="http://www.freehal.org">FreeHAL</a> Online Demo
</div>
<div style="position: absolute; left: 0; bottom: 0; width: 100%; height: 50px; background-color: #fff4b6 !important;
vertical-align: middle !important; text-align: left; padding-left: 10px;
( run in 2.040 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )