lunes, 9 de julio de 2007

Baja-Porno XD

Ups!, a quién se le habrá ocurrido ese trítulo tan poco apropiado XD... Os voy a dejar aquí el primer programilla estúpido que he hecho para Shell XD. Espero que la gente no se ría de mi XD, porque soy consciente de que, pese a lo útil que puede llegar a ser XD, es una gran chorrada de bucle XD.

El programa resuelve el frecuente problema (para algunos más que para otros XD) de bajar una serie de archivos con una estructura parecida de Internet. Supongamos, por ejemplo, que nos tenemos que bajar unos archivos de clase con la estructura:

http://www.direccionfalsa.com/123/electrodinamica/trabajo2.pdf
http://www.direccionfalsa.com/123/electrodinamica/trabajo3.pdf
http://www.direccionfalsa.com/123/electrodinamica/trabajo4.pdf
...
http://www.direccionfalsa.com/123/electrodinamica/trabajo7.pdf

Pues desde linux, deberíamos copiar el programilla que pegaré a continuación en la carpeta donde deseemos descargarlos y teclear desde consola (situados en dicha carpeta):

sh BP www.direccionfalsa.com/123/electrodinamica/trabajo 2 7 pdf

Evidentemente, esto sale más rentable contra mayor sea el número de archivos que deseemos descargar de Internet.

El programa (que es casi una aplicación directa del wget y el bucle for) es el siguiente:

#!/bin/sh
#Este programa intentará bajar de manera inteligente
#archivos cuya dirección corresponda a la estructura:

# http://"dirección""Número"."extensión"; con "Número" entre "desde" y "hasta".
#
#Sintaxis:

# sh BP "dirección" "desde" "hasta" "extensión"
echo ""
echo Bajando archivos .$4 desde el $2 al $3 de la fuente $1.
echo ""
for i in $(seq -w $2 $3); do
wget http://$1$i.$4
done

Para utilizar el programa sólo debéis crear un documento nuevo (yo lo edito con el gedit, pero puede ser con cualquier programa tipo Bloc de Notas) y copiar el texto que os he dejado. Después debéis darle permisos de ejecución.

Si ponemos:

sh BP dire 4 99 jpg

El programa nos bajará las fotos:

http://dire04.jpg
...
http://dire99.jpg

Nótese que no se bajarán las fotos de la forma:

http://dire4.jpg

Para estos casos, deberemos bajarlas por tramos, por ejemplo, si quisiéramos bajar los documentos:

http://dire/D1.doc
http://dire/D2.doc
...
http://dire/D99.doc

Deberíamos teclear:

sh BP dire/D 1 9 doc
sh BP dire/D 10 99 doc

Espero que os sean útiles estas chorradas XD!

Algunos enlaces en los que me he basado para hacer esta mierdecilla de programa son:
Versión 2.0 XD: Acabo de descubrir el comando "read" XD, así que os dejo otra versión del programa anterior, quizá algo más lenta, pero más interactiva :p. Sólo hay que poner:

sh BP2

Y seguir las instrucciones.

Código de la versión 2.0:

#!/bin/sh
#Este programa intentará bajar de manera inteligente
#archivos cuya dirección corresponda a la estructura:
# http://"dirección""Número"."extensión"; con "Número" entre "desde" y "hasta".
echo "¡Bienvenido al programa más cutre jamás creado para bajar cosas con estructura bien definida!"
echo ""
echo "Introduzca la dirección sin el http:// y hasta donde empiece la numeración de lo que quiera descargar:"
read d
echo "Introduzca el número desde el cual hay que empezar a descargar:"
read n
echo "Introduzca el número hasta el cual hay que descargar:"
read s
echo "Introduzca la extensión de los archivos sin el punto:"
read e
echo ""
echo Bajando archivos .$e desde el $n al $s de la fuente $d.
echo ""
for i in $(seq -w $n $s); do
wget http://$d$i.$e
done

(Pinchar sobre la imagen para agrandar)

No hay comentarios:

Publicar un comentario

Querido astarothista!,

Si te ha gustado la entrada y quieres dejar constancia de ello, tienes alguna sugerencia para completarla o corregirla, quieres mostrar tu opinión respecto a algo de lo que se haya hablado en esta entrada (con respeto) o simplemente quieres dejarme un mensaje a mi o a la comunidad, no dudes en comentar ;)!

Recuerda que también estamos en Facebook y en Google+.