Paso 5: Separar las credenciales del archivo principal
Si desea utilizar control de versiones como git para realizar un seguimiento de sus archivos, debe separar los datos sensibles del archivo que pones en línea. Usted puede simplemente hacer un nuevo archivo de python. Nombre este archivo predefines.py y colocar en la misma carpeta que radio.py.
También vamos a limpiar algo de código mediante la definición de algunas funciones.
host = '0.0.0.0' port = 1234 txtFile = 'stations.txt' templateFile = 'interface.html' def isInteger(s): try: int(s) return True except ValueError: return False def mpcCommand(cmd): p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) return p.stdout.read()
Y en la parte superior del archivo radio.py, agregue:
from predefines import host, port, txtFile, templateFile from flask_apscheduler import APScheduler
Para permitir que python mostrar correctamente el texto UTF-8 (la corriente de la radio a veces puede utilizar caracteres UTF-8 en sus títulos), en la parte superior del archivo radio.py, agregue las 2 líneas siguientes:
#!/usr/bin/python # -*- coding: utf-8 -*-
Ahora todos los bits redundantes de código ahora deben reemplazarse con la nueva función mpcCommand(). Hará que el código más legible y más fácil de agregar nuevos comandos.
Por ejemplo, el siguiente código:
if request.form['submit'] == 'turn radio on': cmd=['mpc', 'play'] p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) out,err = p.communicate()
Se sustituye por:
if request.form['submit'] == 'turn radio on': mpcCommand(['mpc', 'play'])