Bueno, en estos días he estado alcanzando los mangas que ya tenia olvidados. El caso es que le he hecho unas cuantas mejoras que merecen indicar un cambio de versión.
- Toma automática de extensión
- Toma automática de offset (ej: url/fairytail-01.jpg, toma fairytail- como offset)
- Fuera el trabajo con ficheros: Al final teniendo en cuenta que la ejecución se hace en memoria y que el wget lo puedo reponer con un simple -c, no es necesario tirar de ficheros de entrada y salida para guardar urls.
Con todo esto me ha quedado el siguiente código:
CÓDIGO
#!/bin/bash
#@autor miniminiyo : http://frikidetodounpoco.blogspot.com.es/
#script para bajar imagenes
# $1,$2....etc son entradas por consola de ejecucion de sh archivi.sh $1 $2...
echo 'Estructura'
echo 'url dir pagIni pagFin zeros '
echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 "
echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 3 "
echo
#LECTURA DE URL
if [ -z $1 ]; then
read -p "introduzca url " url #recibimos dato
url=$(dirname $url)
echo "La url es ${url}"
else
url=$(dirname $1) #si la hemos metido como primera entrada la cargamos de una desde ahi
fi
#NOMBRE DE CARPETA DONDE SE GUARDARA
if [ -z $2 ]; then
read -p "indique el nombre que quiere dar a la carpeta donde se guardaran los datos " nombre
else
nombre=$2
fi
#ESTA PARTE ES SIEMPRE IGUAL, ENTRAMOS EN EL DIRECTORIO
mkdir $nombre
cd $nombre
#INICIO DE DESCARGA DE PAGINAS
if [ -z $3 ] ; then
read -p "introduzca el inicio (default:0, pulse ENTER si acepta por defecto el inicio) " ini
#COMRPOBAMOS ENTRADA DE INICIO
if [ -z "${ini}" ] ;then
ini=0 #¿0 o 1?
fi
#FIN COMPROBACION EN READ
#SEGUIMOS CON LA ENTRADA POR ARGUMENTO AL SCRIPT
else
ini=$3
fi
#FIN DE DESCARGA DE PAGINAS
if [ -z $4 ] ; then
read -p "introduzca el fin " fin
echo "se acabara en ${url}/${fin}.jpg"
else
fin=$4
fi
#LECTURA DE EXTENSION
# nombre del archivo
filename=$(basename "${1}")
echo "Nombre de fichero : ${filename}"
# extension, siempre pilla a partir del ultimo punto
extension="${filename##*.}" #siempre pilla extensioón
echo "Extensión encontrada "${extension}""
#lectura de zeros en el numero 001, 01, 1...
if [ -z $5 ] ; then
read -p "Introduzca la cantidad de ceros que quiere (ej:001=3,01=2,1=1) " zeros
if [ -z "${zeros}" ] ;then #si no hay entrada, es un enter o un espacio o vacio
zeros=1;#por defecto sin relleno de ceros
fi
else #no esta vacio el $6
zeros=$5
fi
#LECTURA DE OFFSET (like url/fairytail...etc..0.jpg) , el offset es hasta el numero
# POSIBLE PROBLEMA SI EL NOMBRE INCLUYE NUMEROS, PORQUE REEMPLAZARA TODOS
#nombre de fichero
offset=$(basename $1)
#quitamos extensión
offset="${offset%.*}"
echo "Nombre sin extensión : ${offset}"
#tomamos offset quitando los numericos
offset="${offset//[0-9]/}"
echo "Offset de las imágenes : ${offset}"
#realizando descarga en directorio actual
for i in $(seq -s " " -f %0${zeros}g $ini $fin)
do
wget -c ${url}/${offset}${i}.${extension}
done
#echo "fin operacion salida a texto"
echo "fin de descarga de archivos"
echo "El nombre del directorio en que se guardo es ${nombre}"
#si quieren tenerlo lo copian y pegan en un documento de texto, ponen extension sh y lo ejecutan con sh archivo.sh
No hay comentarios:
Publicar un comentario