#!/usr/bin/perl # # Dicionário Eletrônico - 21/04/2002 # fabiano@seng.com.br # # Português: http://www.priberam.pt/DLPO # Inglês: http://www.m-w.com # Tradução: http://babelfish.altavista.com use strict; use IO::Socket; use Getopt::Std; my ( $host, $port, $erro, $sock, $opt, $palavra, $get, $linha, $resultado, $tmp, $ok, %args, @temp, ); getopts("i:p:n:r:",\%args); print "Dicionario Eletronico\n"; if ($args{i}) { &opt_i; } elsif ($args{p}) { &opt_p; } elsif ($args{n}) { &opt_n; } elsif ($args{r}) { &opt_r; } else { &usage; } sub opt_i { ($palavra, $erro, $host, $port, $ok) = ($args{i}, 1, "12.129.203.38", 80, 1); print "\n Opcao: Ingles (".$palavra.")\n ----------------------------------------------\n"; $palavra =~ s/ +/+/g; &conecta; if ($erro) { $get = "GET /cgi-bin/dictionary?va=".$palavra." HTTP/1.0\n\n"; print $sock $get; @temp = <$sock>; for ($tmp=0;$tmp<=$#temp;$tmp++) { if ($temp[$tmp] =~ /Pronunciation/) { while ($ok) { $resultado = $temp[$tmp]; $resultado =~ s/<(.*?)>//g; $resultado =~ s/<//g; $resultado =~ s/\n//g; print " ".$resultado."\n"; if ($resultado =~ /Date:/) { $tmp++; $resultado = $temp[$tmp]; $resultado =~ s/
/\n /g; $resultado =~ s/<(.*?)>//g; $resultado =~ s/<//g; print " ".$resultado; $ok = 0; } $tmp++; } } } if ($ok) { foreach $linha (@temp) { if ($linha =~ /\/cgi-bin\/dictionary\?va=/) { (undef, $resultado) = split(/>/,$linha); ($resultado, undef) = split(/) { if ($linha =~ /<\/a>\r/) { ($resultado, undef) = split(/


/,$linha); $resultado =~ s/
/\n\t/g; $resultado =~ s/
/\n\t\t/g; $resultado =~ s/<(.*?)>//g; print "\t$resultado\n"; } } if ($tmp) { print " Palavra desconhecida\n"; } close($sock); } else { print " Erro ao conectar!\n"; } } sub opt_n { ($palavra, $erro, $host, $port) = ($args{n}, 1, "209.73.164.147", 80); print "\n Opcao: Ingles -> Portugues (".$palavra.")\n ----------------------------------------------\n"; $palavra =~ s/ +/+/g; &conecta; if ($erro) { $get = "GET /sites/brpt/pos/babelfish/tr?tt=urltext&urltext=".$palavra."&lp=en_pt HTTP/1.0\n\n"; print $sock $get; foreach $linha (<$sock>) { if ($linha =~ /\"VIRTUAL\">/) { (undef, $resultado) = split(/>/,$linha); $resultado =~ s/\n//; print " ".$resultado."\n"; last; } } close($sock); } else { print " Erro ao conectar!\n"; } } sub opt_r { ($palavra, $erro, $host, $port) = ($args{r}, 1, "209.73.164.147", 80); print "\n Opcao: Portugues -> Ingles (".$palavra.")\n ----------------------------------------------\n"; $palavra =~ s/ +/+/g; &conecta; if ($erro) { $get = "GET /sites/brpt/pos/babelfish/tr?tt=urltext&urltext=".$palavra."&lp=pt_en HTTP/1.0\n\n"; print $sock $get; foreach $linha (<$sock>) { if ($linha =~ /\"VIRTUAL\">/) { (undef, $resultado) = split(/>/,$linha); $resultado =~ s/\n//; print " ".$resultado."\n"; last; } } close($sock); } else { print " Erro ao conectar!\n"; } } sub conecta { $sock = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port, Proto => "tcp", Type => SOCK_STREAM) or $erro = 0; } sub usage { print ' Usage: perl '.$0.' -i perl '.$0.' -p perl '.$0.' -n perl '.$0.' -r Example: perl '.$0.' -r "tudo bom?" '; exit; }