sábado, 19 de marzo de 2016

Script descarga de mangas-imágenes en submanga,mcanime y otros... V3 RELEASE

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