Ruby Snapshot #1
Este é o primeiro post de uma serie chamada Ruby Snapshot. O objetivo desta serie é mostrar grandes soluções com poucas linhas de código Ruby. Quem quiser mandar um snapshot será muito bem vindo.
Para começar quero colocar um script que me quebra vários galhos, serve para traduzir uma palavra, frase ou texto de um idioma para outro, através do Google Translate. Nesse script estou utilizado a gem Hpricot, que faz parse de HTML, recomendo!
require 'net/http'
require 'hpricot'
html = Net::HTTP.new('translate.google.com').post('/translate_t', "langpair=en|pt&text=#{ARGV[0]}”).body
puts Hpricot(html).at(’#result_box’).inner_text
Explicando: primeiro um post na página do Google Translate, passando como parâmetro o langpair e o texto a ser traduzido, que passo como parametro de console. O exemplo mostra uma tradução de inglês para português, mas é bem fácil alterar mudando o parâmetro do post: langpair, neste caso en|pt (English to Portuguese).
Depois, utilizando a gem Hpricot, faço um parse no HTML de resultado do post, pegando o trecho do resultado (o conteúdo de uma div com id result_box) e exibo no console.
Salvando esse script com o nome traduza.rb, por exemplo, o resultado seria o seguinte:
>> traduza.rb "Hello World!" => Olá Mundo!
Simples, fácil e útil. Adapte e use na sua aplicação Rails!
- Posted by Wagner Andrade at 01:22 pm
- Permalink for this entry
- Filed under: Ruby, Snapshot
- RSS comments feed of this entry
- TrackBack URI
Boa! Grande novidade na blogosfera. Com certeza todas as suas “escrituras” serão úteis e logo logo se espalharão pôr esses cantos uniformes do Brasil tão sedento de informações válidas. Quem sai ganhando somos nós.
Sobre o post, já tivemos uma discussão, e pelo que eu lembre o resultado foi 2 a 1 pra ti. De virada! Então não tenho o que discutir mais…
Abração figura!
belo pedaço de código!
e dale Was!
Wagner, parabéns pelo blog. Gostei dele, é limpo, visualmente, e o conteúdo me agrada. Falando especificamente deste post, gostei muito, é uma ótima dica. Só me diz uma coisa, você viu na documentacao do google translate (se é que isso existe) a forma de se fazer o post ?
Rafael.
E ai Rafael! Valeu cara! Respondendo:
Pra dizer a verdade nem sei se existe essa documentação, usei o Firebug, aquele addon de Firefox, indispensável! Ele tem uma aba - Net se não me engano - monitora todos os requests feitos para montar a página. Dei uma olhada nos parâmetros, vi os que eram obrigatórios e pronto.
Também dá pra usar um sniffer pra fazer isso, Wireshark, por exemplo. Mas dá mais trabalho.
Abraço!