Benötige Hilfe beim Script

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kometrix
User
Beiträge: 1
Registriert: Freitag 24. Januar 2020, 21:58

Hallo,
ich habe ein Webradio und möchte ein paar Einstellungen an dem Script machen. Haber aber bisher keine Ahnung von Python 2.
Das Script liest 3 Ordner aus die zu unterschiedlichen Zeiten laufen. Einmal von 10-0 und einmal von 0 - 10.
Dies möchte ich ändern, daher benötige ich Hilfe.

0 – 6 > NightRotation
6 – 12 > MiddayRotation
12 – 18 > DayRotation
18 – 24 > AbendRotation

So sollten die Zeiten aufgeteilt werden.

Code: Alles auswählen

#!/usr/bin/env python

heavyRotationPercentage = 1.0 / 2.0

import os
import random
import pickle
import datetime

directory = os.path.dirname(os.path.abspath(__file__))
heavyRotationDir = os.path.join(directory, "HeavyRotation")
normalRotationDir = os.path.join(directory, "NormalRotation")
oldRotationDir = os.path.join(directory, "OldRotation")
jinglesDir = os.path.join(directory, "Jingles")
statusFile = os.path.join(directory, "status.txt")
currentHour = datetime.datetime.now().hour

status = [('','')]*8

if os.path.isfile(statusFile):
    with open(statusFile, "rb") as f:
        status = pickle.load(f)
lastFiles = [i[0] for i in status]

fileListFilter = lambda fileList: [fileName for fileName in fileList if
                                   fileName not in lastFiles and fileName[-4:] == ".mp3"]

choosenFileDir = False
choosenFileList = False


if status[-1][1]!=jinglesDir:
    #Letzte Track war kein Jingle
    choosenFileDir = jinglesDir
    choosenFileList = fileListFilter(os.listdir(jinglesDir))


if currentHour >= 10 and choosenFileDir == False:
    #Von 10:00 bis 24:00 aus der normalen / Heavy Rotation waehlen
    filesInHeavyRotation = fileListFilter(os.listdir(heavyRotationDir))
    filesInNormalRotation = fileListFilter(os.listdir(normalRotationDir))
    if random.random() <= heavyRotationPercentage and len(filesInHeavyRotation) > 0:
        choosenFileDir = heavyRotationDir
        choosenFileList = filesInHeavyRotation
    elif len(filesInNormalRotation) > 0:
        choosenFileDir = normalRotationDir
        choosenFileList = filesInNormalRotation

if choosenFileDir == False:
    # Von 00:00 bis 10:00 (oder wenn nichts anderes gefunden wurde) aus der alten Rotation waehlen
    choosenFileDir = oldRotationDir
    choosenFileList = fileListFilter(os.listdir(oldRotationDir))


choosenFile = random.choice(choosenFileList)

with open(statusFile, "wb") as f:
    status.append((choosenFile, choosenFileDir))
    pickle.dump(status[1:],f)

print os.path.join(choosenFileDir, choosenFile)

Es wäre echt Super, wenn Ihr mir dabei Helfen könnt :)

Mit freundlichen Grüßen

Kometrix
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Ein Fehler in der Matrix!

viewtopic.php?t=47037
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich dachte mir auch schon da trappt die Nachtigall...

@Kometrix: wenn ihr es nicht könnt, bezahlt wen. Wegen mit mit Bier im lokalen Studentenwohnheim.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Das mit dem Bezahlen hat ja auch nur so leidlich geklappt. Ich weiß aber auch nicht, was an dem Skript im anderen Thread noch fehlt.
Antworten