#!/usr/bin/ruby -w #======================================================= # visp.rb - script para el manejo de visprint #------------------------------------------------------- # visprint (http://www.tastyrabbit.net/visprint/) # está pensado para realizar una imagen PNG fractal # de la salida de cualquier algoritmo de HASH #======================================================= # FJA - neocipres@gmail.com Septiembre de 2009 #======================================================= require 'RMagick' info = "\t Algunas opciones de visprint. Para mayor información: man visprint \n" << "\t #{"-"*70} \n" << "\t -b(0-255) \t Permite modificar el brillo del fondo. \n" << "\t -c \t\t Se usa para alternar el método usado para el color.\n" << "\t -a \t\t Crea un fractal con 4 áreas de color diferentes. \n" << "\t -g \t\t Crea una imagen en semi-escala de grises.\n" << "\t -i(1-lots) \t Utiliza una determinada intensidad de color.\n" << "\t -r(1-1000) \t Modifica el valor de la resolución en los ejes x e y. \n" << "\t -l(32-128) \t Utiliza una determinada longitud de HASH. \n" << "\t -t \t\t Crea la imagen con un fondo transparente. " url = {"neocipres" => 'http://neocipres.com', "gnu" => 'http://www.gnu.org', "alminares" => 'http://moodle.iesalminares.es', "ubuntuz" => 'http://www.ubuntuz.com', "omerique" => 'http://www.omerique.net'} cmd1 = '' cmd2 = '' imagen = '' listaop = '' evento = '' begin raise if ARGV.size == 0 t = Time.now evento << "-" << t.strftime("%d%m%Y-%H:%M") clave = ARGV[0] imagen << clave << evento << '.png' opvisp = ARGV[1..-1] opvisp.each{|opcion| listaop << opcion << " "} cmd1 << "wget --output-document=in.txt #{url[clave]}" system(cmd1) cmd2 << "md5sum in.txt | visprint #{listaop} > #{imagen}" system(cmd2) img = Magick::Image.read(imagen).first img.display rescue if ARGV.size == 0 puts "\n\t #{"="*70} " puts "\t > Uso: visp <clave> [opciones de visprint]\n" puts "\n\t > claves: #{url.keys.join(", ")} " puts "\t #{"-"*70} " puts "\n #{info} " puts "\t #{"="*70} \n\n" else print "\n\t Error-> ", $!, "\n\n" end end