Paso 6: Agregar estaciones de radio
Para que sea un poco más cómoda, dejamos Python parse un archivo txt donde definimos nuestras estaciones de radio. Separamos el nombre de la URL por un ' |' delimitador. Aquí son algunos ejemplo que están actualmente activos en el año 2016:
NPO Radio 1 NL | http://icecast.omroep.nl/radio1-sb-mp3 Rainwave Chiptune | http://icecast.omroep.nl/radio1-sb-mp3 Ibiza Global Radio | http://icecast.omroep.nl/radio1-sb-mp3 No-Life Radio | http://icecast.omroep.nl/radio1-sb-mp3 Smooth Jazz Florida | http://icecast.omroep.nl/radio1-sb-mp3 FM Odawara | mms://simul.freebit.net/fmodawara
Puedes encontrar muchos más en https://www.internet-radio.com
Para analizar este archivo txt, agregue el código siguiente en la función hello_world() :
stations = [] stationURLs = [] stationOutput = '' for x in open('stations.txt','r'): a = x.split("|") stations.append(a[0]) stationURLs.append(a[1].strip())
entonces después de la instrucción if-else:
position = mpcCommand(['mpc', '-f', '%position']) idx = position.split('[') position = idx[0].strip() if isInteger(position) == False: position = 0 x = 1 for station in stations: stationOutput += '<option value="' = str(x) + '" ' if x == int(position): stationOutput += 'selected="selected"' stationOutput += '>' + station + '</option>' x += 1
Este código básicamente llena 2 matrices con cadenas. La variable stationOutput es construir el código html que utilizaremos en el front-end. También, si una estación se está reproduciendo, obtenemos su posición. Vamos a hacer esto se corresponde con nuestro desplegable, por lo que cuando usted vaya a la parte delantera, la estación que se está reproduciendo en este momento está seleccionada por defecto.
Luego añadir otra declaración a la estructura if-else. Recoge el índice de la caja de selección, que es un número entero.
elif request.form['submit'] == 'change': mpcCommand(['mpc', 'play', str(request.form['station'])])
Finalmente, actualizar la instrucción return.
return render_template('interface.html', name=name, stations=stationOutput.strip())
También deberemos ser capaces de actualizar nuestra lista de reproducción. Agregue este código a la instrucción if-else.
elif request.form['submit'] == 'update playlist': mpcCommand(['mpc', 'clear']) for stationURL in stationURLs: mpcCommand(['mpc', 'add', stationURL])
En el archivo de plantilla, agregue el código siguiente para agregar un cuadro de selección donde podemos elegir la estación de radio, junto con un botón. Agregar |safe al lado de la variable que le permita insertar html. Añadir el botón de actualizar. No se olvide de añadir este código en las etiquetas de formulario .
<select name='station'>{{ stations|safe }}</select> <input type="submit" name="submit" value="change" /> <br/> <input type="submit" name="submit" value="update playlist" />