#!/usr/bin/perl

require "./params.pl";

$nbnicks=0;

# msghandler sub.. called by poll sub like &msghandler($buffer);

sub msghandler {
$raw = $_[0];
$hraw = $raw;
$hraw = substr($hraw,1,length($hraw)-1);
@qwerty=split(/ :/,$hraw,2);
$inmsg = $qwerty[1];
@uiop = split(' PRIVMSG ', $qwerty[0], 2);
$inchan=$uiop[1];
@asdfg = split(/!/, $uiop[0]);
$innick = $asdfg[0];
@hjkl = split('@',$asdfg[1], 2);
$inident = $hjkl[0];
$inhost = $hjkl[1];

@words=split(' ',$inmsg);
$nbwords=$#words;
#print "nbwords=$nbwords inmsg=$inmsg\n";

if ( ( @words[0] eq "translate" ) && ( @words[1] eq $Botnick ) )
{
   @nicks[$nbnicks] = @words[2];
   $nbnicks++;
   print "translating @words[2] now.... word 0 :  @words[0]\n";
   return;
}

if ( ( @words[0] eq "stop" ) && ( @words[1] eq $Botnick ) )
{
   for ( $in=0;$in<$nbnicks;$in++)
   {
      if ( @words[2] eq @nicks[$in] ) 
      {
         @nicks[$in] = "";
         print "stop translating @words[2] now.... word 0 :  @words[0]\n";
      }
   }
   return;
}

if ( ( @words[0] eq "list" ) && ( @words[1] eq $Botnick ) )
{
   for ( $in=0;$in<$nbnicks;$in++)
   {
     $outmsg = "translating : @nicks[$in]";
     &privmsg($inchan, $outmsg);
   }
   return;
}


if ( ( @words[0] eq "join" ) && ( @words[1] eq $Botnick ) )
{
   $first = "JOIN @words[2]\n\r";
   syswrite(SH, $first, length($first));
   return;
}

if ( ( @words[0] eq "part" ) && ( @words[1] eq $Botnick ) )
{
   if ( @words[2] ne "#zoo" )
   {
     $first = "PART @words[2]\n\r";
     syswrite(SH, $first, length($first));
     return;
   }
}

$translateit = 0;
for ( $in=0;$in<$nbnicks;$in++)
{
  if ( $innick eq @nicks[$in] )
  {
    $translateit = 1;
  }
}

if ($translateit == 0 )
{
  return;
}

$newsentence="";

#suppress non alpha words
#for ($ww=0; $ww<=$nbwords; $ww++ )
#{
#   $word=@words[$ww];
#   $nword=$word;
#   $newsentence=$newsentence." ".$nword;
#}
#$inmsg=$newsentence;
$newsentence="";
if ( $inmsg eq "" ) 
{
  return;
}

$shmsg = $inmsg;
$shmsg =~ s/'/\\\'/g;
$shmsg =~ s/"/\\\"/g;
#$shmsg =~ s/-/ /g;
$shmsg =~ s/\(/ /g;
$shmsg =~ s/\)/ /g;
$inmsg =~ s/\(/ /g;
$inmsg =~ s/\)/ /g;
$shmsg =~ s/ /+/g;
$shmsg =~ s/é/e/g;
$shmsg =~ s/è/e/g;
$shmsg =~ s/à/a/g;
#print "evaluating ./auto-trad $LangIn $LangOut $shmsg\n";
$newsentence=`./auto-trad $LangIn $LangOut $shmsg`;

#print "newsentence=<$newsentence>\n";

if ( $newsentence ne "" )
{
   &privmsg($inchan, $newsentence);
}

}

1;
