Radio en Internet: Programación en BASH (Cap. 4)
Manos a las obras. Ya presentamos el problema fundamental, lo enfocamos y vimos algunos detalles adicionales. Comenzaremos a programar, definiremos algunas variables.
He decidido, por ahora, que el script BASH preguntará al operador cuántas horas desea grabar, de tal modo el mismo tendrá más control sobre el proceso.
Quienes estén muy perdidos en materia de programación BASH, consulten este Tutorial.
Bien, comencemos a programar. Abrimos un editor de textos como kwrite, kate, vim, emacs o el que más les guste, y definimos qué tipo de script estamos haciendo:
#!/bin/bash
Eso significa que será un script BASH.
Se trata de software libre, es necesario explicitar la licencia (ver GPL howto)
Podríamos definir una variable que contenga la cantidad de segundos a grabar por cada archivo de audio, 3600 segundos son una hora:
# longitud de cada grabación, en segundos: 3600 = 1 hora
tiempo=3600
El programa deberá saber en qué día, mes, año, hora, minuto y segundo se encuentra. El comando date nos brinda una salida de este estilo:
date
lun ago 4 14:15:35 CEST 2008
La ayuda de date (date –help) puede guiarnos en cuanto a qué estructura de tiempo usaremos para nombrar los archivos.
Esto daría el día, mes y año:
date +%d%m%y
040808
Esta forma sería quizá más entendible
date +%d%h%y
04ago08
Sea como fuere, yo propongo separar el tiempo en variables separadas, así obtendremos mayor flexibilidad a la hora de resolver problemas.
# 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`
Bien, estas variables son las fundamentales.
Ahora, me disculpan, pero a mí me gusta darle color a los programas, así obtendremos mayor legibilidad a la hora de intentar ver qué están haciendo (entre tantas letras grises o verdes). Ver ANSI COLORS.
Preguntamos al operador, cuántas horas desea grabar:
# Haremos que le pregunte la cantidad de horas a grabar y subir al server
clear
echo "¿Cuántas horas grabaremos?
(ingresa un número y presiona [enter])"
read canthoras
Entonces, canthoras es una variable que contiene la cantidad de horas a grabar y subir al servidor, simple. Si estuviéramos en una situación en la que debemos grabar las 24hs, esto no tendría sentido, y el programa funcionaría por tiempo indefinido. Pero en nuestro problema, la gente de la radio necesita grabar sólo 14hs por día, y a veces un tanto más, así que deberán definirlo ellos a medida que la radio cambie: hay que tener en cuenta que la programación no será siempre la misma.
Por último en materia de definir variables básicas, creamos un contador que llevará la cuenta de las horas ya grabadas, lo ponemos en 0 (cero).
contador=0
– Manual para una radio en Internet (Cap. 1)
– Guía para grabar programas de Radio en Internet Cap. 2)
– Problemas de tener una radio online (Cap. 3)
– Radio en Internet: Programación en BASH (Cap. 4)
– Programando una radio en Internet (Cap. 5)
– Radio en Internet: Compresión de audio (Cap. 6)
– Subir programas de radio a Internet (Cap. 7)
– Crear una radio online (Cap. 8)
Por Marcos Guglielmetti, el 04/08/2008.