Posted by Radio_FM on Tue 5 Aug 00:19
report abuse | View followups from Radio_FM and jpadillapetramascom | download | new post
- #!/bin/sh
- # radio futura (C) 2008 por Marcos Guglielmetti
- # Software Libre bajo licencia GNU GPL v3 o posterior
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- # TODO: separar los procesos: grabar, subir, controlar que salga bien
- # V 0.23
- # 0.1: sáb ago 2 2008 nace el programa :P
- # 0.2: dom ago 3 2008 resuelto el problema de lftp con ssl
- # 0.21: abre firefox cuando termina de grabar todo lo del día
- # mostrando lo grabado.
- # 0.22: le tuve que sacar el -q a ecasound porque si fallaba no avisaba
- # cuál era el problema, por ejemplo, si otro programa como audacity
- # estaba usando la entrada oss, fallaba (pensar que quizá tengamos
- # que usar jackd)
- # 0.23 reducido el espacio del nombre de archivo, eliminados algunos -
- # dado que sino en el navegador web se veía incompleto el nombre
- # y se prestaba a confusión, ahora se ve así:
- # Name Last modified Size Description
- # dom03082008_22-05-hs..> 03-Aug-2008 20:20 18M
- # longitud de cada grabación, en segundos: 3600 = 1 hora
- tiempo=3600
- # fechas
- ANIO00=`date +%y`
- ANIO="20$ANIO00"
- MES=`date +%m`
- DIANUM=`date +%d`
- HORA=`date | cut -b12-13`
- MIN=`date | cut -b15-16`
- # necesitamos los segundos para sincronizar perfectamente
- # el comienzo de la primer grabación
- SEG=`date | cut -b18-19`
- DIANOMBRE=`date | cut -b 1-3`
- # Colores
- # ANSI COLORS
- CRE="
- [K"
- NORMAL="[0;39m"
- # RED: Failure or error message
- RED="[1;31m"
- # GREEN: Success message
- GREEN="[1;32m"
- # YELLOW: Descriptions
- YELLOW="[1;33m"
- # BLUE: System messages
- BLUE="[1;34m"
- # MAGENTA: Found devices or drivers
- MAGENTA="[1;35m"
- # CYAN: Questions
- CYAN="[1;36m"
- # BOLD WHITE: Hint
- WHITE="[1;37m"
- # Haremos que lo pregunte la cantidad de horas a grabar y subir al server
- clear
- echo "$YELLOW
- ¿Cuántas horas grabaremos? $NORMAL
- (ingresa un número y presiona [enter])"
- read canthoras
- contador=0
- # debe advertir al usuario, que si no estamos
- # en el minuto 00 o cercano, se desincronizará todo
- # podemos hacer que pregunte si quiere sincronizarlo...
- # ¿o lo forzamos?
- # ver qué exactitud manejaremos, si vale pasarse por 1 o 2 o 3 mins
- if [ "$MIN" -gt 2 ]
- then
- esperar=`expr 60 - $MIN`
- echo "$RED
- ATENCION: $NORMAL
- Estamos en el minuto $YELLOW $MIN $NORMAL de la hora $HORA
- "
- # Entonces, podemos esperar 60 - $MIN, y comenzar recién en ese momento
- # así queda todo sincronizado! :D
- echo "$YELLOW
- Grabaremos $esperar minutos y luego comenzamos a grabar
- desde el minuto 00... $NORMAL"
- #read sn
- #if [ "$sn" = "s" ]
- #then
- # había un problema con lftp y las conexiones ssl, lo resolví con esto:
- #http://www.mail-archive.com/lftp@uniyar.ac.ru/msg03194.html
- # continuando con el proceso...
- archivo="$DIANOMBRE$DIANUM$MES$ANIO-$HORA-$MIN-hs.ogg"
- echo "$YELLOW Grabando $esperar minutos, luego retomamos desde el minuto 0 para la próxima hora... $NORMAL
- Nombre del archivo: $archivo
- "
- # como ecasound funciona en segundos, debemos multiplicar esperar x 60
- # y le restamos los segundos demás que lleva esta hora mediante la variable $SEG
- # Así la próxma grabación comenzará en el minuto 0 segundo 0
- grabar_segundos=`expr $esperar \* 60 - $SEG`
- echo "total de segundos a grabar: $RED $grabar_segundos $NORMAL, lo cual representa $esperar minutos"
- #grabar_segundos=20 #
- # -q es para que no muestre toda esa salida enorme
- ecasound -t:$grabar_segundos -i:/dev/dsp -o:$archivo,56000
- # NOTE: lftp tiene que estar con set ftp:ssl-allow no
- # para que funcione en algunos casos...
- # creando un directorio para el día de hoy en el servidor web
- echo "Creando un directorio para el día de hoy en el servidor
- de Internet..."
- lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mkdir /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO; bye" &
- # subiendo el resultado a un servidor web http://ftp.nuestro_sitio.com/users/miusuario
- echo "$CYAN Subiendo el audio grabado al servidor web http://ftp.nuestro_sitio.com/users/miusuario, y continuando con la grabación.
- $NORMAL"
- lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mput $archivo -O /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/; bye" &
- #fi
- fi
- # creando un directorio para el día de hoy en el servidor web
- echo "Creando un directorio para el día de hoy en el servidor
- de Internet..."
- lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mkdir /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO; bye" &
- # continuando con el proceso...
- while [ $contador -lt "$canthoras" ]
- do
- # hay que volver a definirlo, dado que la grabación
- # puede cambiar justo de mes o día, mientras se está ejecutando...
- ANIO00=`date +%y`
- ANIO="20$ANIO00"
- MES=`date +%m`
- DIANUM=`date +%d`
- #echo "$ANIO/$MES/$DIANUM" # debug
- HORA=`date | cut -b12-13`
- MIN=`date | cut -b15-16`
- DIANOMBRE=`date | cut -b 1-3`
- echo "Comenzando grabación año $ANIO, mes $MES, dia $DIANUM, hora $HORA, minuto $MIN" | festival --tts &
- contador=`expr $contador + 1`
- archivo="$DIANOMBRE$DIANUM$MES$ANIO-$HORA-$MIN-hs.ogg"
- echo "
- Hemos grabado:$YELLOW $contador $NORMAL horas
- Grabaremos un total de $YELLOW $canthoras $NORMAL horas
- Nombre del archivo: $archivo
- Grabando... (presiona control+c para abortar)
- "
- # 3600 segundos es una hora.
- ecasound -t:$tiempo -i:/dev/dsp -o:$archivo,56000
- # subiendo el resultado a un servidor web http://ftp.nuestro_sitio.com/users/miusuario
- echo "$CYAN Subiendo el audio grabado al servidor web http://ftp.nuestro_sitio.com/users/miusuario, y continuando con la grabación...
- $NORMAL"
- lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mput $archivo -O /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/; bye" &
- done
- echo "
- Hemos grabado:$YELLOW $contador $NORMAL horas
- Fin de la grabación.
- "
- echo "$CYAN Archivos subidos hoy a Internet: $NORMAL"
- # vemos qué subimos al server
- lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "ls /users/miusuario/Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/; bye"
- # por ahora abrimos firefox, no es mala idea
- firefox http://ftp.nuestro_sitio.com/users/miusuario/Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.