#!/bin/bash
#
# Genera un listado con las peliculas del disco externo.
#
# Fede Diaz (nordri@...)
# Febrero 2008 - Version 0.1
# Marzo 2008 - Version 0.2 Genera informes en html con enlaces a filmaffinity
#
PPATH="/mnt/backup/pelis"
EMAILS="Escribe aquí las direcciones de correo separadas por comas"
TMPPATH="/tmp/pelis.script"
LISTA_TITULOS=$TMPPATH/listaTitulos.html
LISTA_GENEROS=$TMPPATH/generos
TITULOS_SIN_BARRAS=$TMPPATH/auxBarras.txt
TITULOS_SIN_PUNTOS=$TMPPATH/auxPuntos.txt
SERIES=$TMPPATH/series.lista
DOCUS=$TMPPATH/docus.lista
# Funcion que elimina las barras ("/") de la cadena (Genero)
function limpiaBarrasCadena() {
echo $1 | awk -F"/" '{ print $4 }'
}
# Funcion que elimina el punto de extension de la cadena (Genero)
function limpiaPuntoCadena() {
echo $1 | awk -F"." '{ print $1 }'
}
# Funcion que formatea la cadena de pelicula para que solo quede el titulo
function formateaPelicula() {
cat $1 | awk -F"/" '{ print $6 }' >> $TITULOS_SIN_BARRAS
cat $TITULOS_SIN_BARRAS | awk -F"." '{ print $1 }' >> $TITULOS_SIN_PUNTOS
rm $TITULOS_SIN_BARRAS
}
# Funcion para anadir titulos
function anadir(){
case $1 in
"pelicula")
TAM=`wc -l $2 | awk -F" " '{ print $1 }'`
for i in `seq 1 $TAM`; do
TITULO=`head -n $i $2 | tail -1`;
generaHTML titulo "$TITULO";
done
rm $TITULOS_SIN_PUNTOS
;;
"serie")
ls $PPATH/Series >> $SERIES
TAM=`wc -l $SERIES | awk -F" " '{ print $1 }'`
for i in `seq 1 $TAM`; do
TITULO=`head -n $i $SERIES | tail -1`;
generaHTML titulo "$TITULO";
done
;;
"docu")
ls $PPATH/Documentales >> $DOCUS
TAM=`wc -l $DOCUS | awk -F" " '{ print $1 }'`
for i in `seq 1 $TAM`; do
TITULO=`head -n $i $DOCUS | tail -1`;
generaHTML titulo "$TITULO";
done
;;
esac
}
# Genera el código HTML por casos. HEAD : Cabezera, GENERO : Genero del video,
# TITULO : Titulo del video + link, CIERRA : Cierra la página.
function generaHTML() {
case $1 in
"head")
echo "<html><head><title>El Listado de Películas</title></head><body bgcolor=\"#efefef\" text=\"black\" link=\"blue\" vlink=\"#551A8B\" alink=\"red\">" >> $LISTA_TITULOS
;;
"genero")
echo "<p><b>Peliculas del Genero: "$2"</b></p>" >> $LISTA_TITULOS
;;
"titulo")
echo "<li><a href=\"http://www.filmaffinity.com/es/search.php?stext=$2&stype%5B%5D=title&genre=&country=&fromyear=&toyear=\">"$2"</a></li>" >> $LISTA_TITULOS
;;
"cierra")
echo "</body></html>" >> $LISTA_TITULOS
;;
esac
}
function lista(){
if [ $1 == "empieza" ]; then
echo "<ol>" >> $LISTA_TITULOS
else
echo "</ol>" >> $LISTA_TITULOS
fi
}
# Obtenemos los generos disponibles
ls $PPATH > $LISTA_GENEROS
# Hacemos un bucle que clasificara el contenido de las carpetas
# segun su genero y los guardara en ficheros distintos
for GENERO in `cat $LISTA_GENEROS`; do
find $PPATH/$GENERO -iname "*.avi" | sort > $TMPPATH/$GENERO.lista;
done
# Una vez que tenemos las pelis separas por genero las juntamos poniendo una
# cabezera con el genero. Se hace en un nuevo bucle en el que al mismo tiempo
# se le añade el formato a la cadena para que solo aparezca el titulo de la
# pelicula.
generaHTML head # Inserta la cabezera del código HTML
for GENERO in `ls $TMPPATH/*.lista`; do
GENERO_SIN_BARRAS=`limpiaBarrasCadena $GENERO`
GENERO_SIN_PUNTO=`limpiaPuntoCadena $GENERO_SIN_BARRAS`
generaHTML genero $GENERO_SIN_PUNTO
lista empieza # Inserta la etiqueta de lista HTML superada
case $GENERO_SIN_PUNTO in
"Series")
anadir serie
;;
"Documentales")
anadir docu
;;
*)
formateaPelicula $GENERO # Se da formato al listado de pelis del Genero.
anadir pelicula $TITULOS_SIN_PUNTOS # Se anade el listado de pelis del Genero.
;;
esac
lista termina # Cierra la lista HTML numerada
done
# Escribimos el código HTML para cerrar la página
generaHTML cierra
# Enviar la lista por correo.
cat $LISTA_TITULOS | email --quiet --html --subject "Nuevo listado de peliculas" $EMAILS
# Limpiamos los ficheros generados.
rm $TMPPATH/*