Raspberry Pi internetradio med kolven (5 / 9 steg)
Steg 5: Separera referenser från huvudfilen
Om du vill använda versionskontroll som git att hålla reda på dina filer, bör du avgränsa känsliga data från filen du sätta online. Du kan enkelt göra en ny python fil. Namnge denna fil predefines.py och placera den i samma mapp som radio.py.
Vi kommer också att rensa upp lite kod genom att definiera vissa funktioner.
Host = "0.0.0.0"
Port = 1234
txtFile = "stations.txt"
templateFile = "interface.html"
def isInteger(s):
försök:
int(s)
Return True
Förutom ValueError:
returnera False
def mpcCommand(cmd):
p = underprocess. Popen (cmd, stdout = underprocess. Pipa, stderr = underprocess. Pipa, stdin = underprocess. PIPE)
återgå p.stdout.read()
Och på toppen av din radio.py fil, Lägg till:
från fördefinierar import värd, port, txtFile, templateFile
importera APScheduler från flask_apscheduler
Om du vill tillåta python att korrekt Visa UTF-8-text (radioström kan ibland använda UTF-8-tecken i sina titlar), högst upp i filen radio.py, tillägga den följande 2 linjen:
#! / usr/bin/python
#-*-kodning: utf-8-*-
Nu bör alla överflödiga bitar av kod nu ersättas med nya mpcCommand() funktionen. Det kommer att göra koden mer läsbar och lättare att lägga till nya kommandon.
Till exempel följande kod:
om request.form['submit "] =="aktivera radion":
CMD = ["mpc', 'spela']
p = underprocess. Popen (cmd, stdout = underprocess. Pipa, stderr = underprocess. Pipa, stdin = underprocess. PIPE)
ut, fela = p.communicate()
Ersätts med:
om request.form['submit "] =="aktivera radion":
mpcCommand (['mpc', 'spela'])