Hola
Este es mi primer script en Ruby, Y lo he hecho con mucha ayuda sino no habría podido
Lo único que me preocupa del script es el def "todos", no se si está bien hecho.Y me gustaría simplificar la comprobacion de los argumentos así por ejemplo:
if (ARGV[0])==(-h|--help)
help()
end
Pero no se hacerlo bien xD
Si ven algún error o mejora diganmelo, gracias
EDITO:
Por cierto, Me parece tremendamente inseguro que al usar:
File.renameSi existe un archivo con el mismo nombre que el archivo nuevo (renombrado), El archivo se reemplaza por el renombrado, En vez de dar error... O algo parecido xD
# -*- coding: UTF-8 -*-
# Renombrador preconfigurado de archivos
#
# El código original es de RyogiShiki
# http://foro.elhacker.net/scripting/solucionado_ruby_renombrando_un_caracter_ilegal-t354066.0.html
# Gemas, Módulos...
require 'find'
exit if Object.const_defined?(:Ocra)
system('chcp 1252 >NUL')
# Métodos
def reset_vars()
$total = -1
$renamed = 0
end
def resultado()
puts " Procesados: #{$total} archivos"
puts " Renombrados: #{$renamed} archivos"
system('chcp 850 >NUL')
Process.exit
end
def advise()
print ' Use "Renamer.exe -a" Para mostrar la ayuda.' + "\n"
system('chcp 850 >NUL')
Process.exit
end
def help()
system('chcp 850 >NUL')
print "\n Modo de empleo:\n\n"
print " " + __FILE__.split('/').last + " [Opci\u00F3n] [Ruta]\n\n"
print "\n Opciones: \n\n"
print " -c --comilla Reemplaza \[\u00B4\] por \[\u0027\]\n\n"
print " -e --extension Reemplaza [ .mp3] por [.mp3]\n\n"
print " -f --featuring Reemplaza [ ft ],[ ft. ],[ feat ],[ featuring ] por [ feat. ]\n\n"
print " -g --guion Reemplaza \[\u2013\] por \[-\]\n\n"
print " -i --interrogante Elimina \[\u00BF\]\n\n"
print " -t --todo Combina todas las opciones (-c + -e + -f + -g + -i)\n"
Process.exit
end
def reemplazar(caracter_a_reemplazar, nuevo_caracter)
$total = -1
Find.find(ARGV[1].gsub("\\", "/")) { |path|
path = path.encode('utf-8')
if path[caracter_a_reemplazar] then
if File.exist?(path.gsub(caracter_a_reemplazar, nuevo_caracter))
print "\n ERROR. El archivo a reemplazar ya existe: " + (path).split('/').last + "\n"
else
File.rename(path, path.gsub(caracter_a_reemplazar, nuevo_caracter))
$renamed += 1
end
end
$total += 1
}
end
# Argumentos
if (ARGV.empty?) then
help()
end
if (ARGV[0])=="-a" or ARGV[0] == "/?"
help()
end
if (ARGV[1])==()
print "\n ERROR. Debe introducir una ruta...\n\n"
advise()
elsif if not File.directory? (ARGV[1]) then
print "\n ERROR. La ruta no existe...\n\n"
advise()
end
end
if ARGV[0] == "-c" or ARGV[0] == "--comilla"
reset_vars()
reemplazar("\u00B4", "\u0027")
resultado()
elsif (ARGV[0])=="-e" or ARGV[0] == "--extension"
reset_vars()
reemplazar(" .mp3", ".mp3")
reemplazar(" .MP3", ".mp3")
reemplazar(" .Mp3", ".mp3")
resultado()
elsif (ARGV[0])=="-f" or ARGV[0] == "--featuring"
reset_vars()
reemplazar(" ft. ", " feat. ")
reemplazar(" Ft. ", " feat. ")
reemplazar(" FT. ", " feat. ")
reemplazar(" ft ", " feat. ")
reemplazar(" Ft ", " feat. ")
reemplazar(" FT ", " feat. ")
reemplazar(" feat ", " feat. ")
reemplazar(" Feat ", " feat. ")
reemplazar(" FEAT ", " feat. ")
reemplazar(" featuring ", " feat. ")
reemplazar(" Featuring ", " feat. ")
reemplazar(" FEATURING ", " feat. ")
resultado()
elsif (ARGV[0])=="-g" or ARGV[0] == "--guion"
reset_vars()
reemplazar("\u2013", "-")
resultado()
elsif (ARGV[0])=="-i" or ARGV[0] == "--interrogante"
reset_vars()
reemplazar("\u00BF", "")
resultado()
elsif (ARGV[0])=="-t" or ARGV[0] == "--todo"
reset_vars()
reemplazar("\u00B4", "\u0027")
reemplazar("\u2013", "-")
reemplazar("\u00BF", "")
reemplazar(" ft. ", " feat. ")
reemplazar(" Ft. ", " feat. ")
reemplazar(" FT. ", " feat. ")
reemplazar(" ft ", " feat. ")
reemplazar(" Ft ", " feat. ")
reemplazar(" FT ", " feat. ")
reemplazar(" feat ", " feat. ")
reemplazar(" Feat ", " feat. ")
reemplazar(" FEAT ", " feat. ")
reemplazar(" featuring ", " feat. ")
reemplazar(" Featuring ", " feat. ")
reemplazar(" FEATURING ", " feat. ")
reemplazar(" .mp3", ".mp3")
reemplazar(" .MP3", ".mp3")
reemplazar(" .Mp3", ".mp3")
resultado()
end