Seite 1 von 1

Benötige Hilfe beim Script

Verfasst: Freitag 24. Januar 2020, 22:06
von Kometrix
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

Re: Benötige Hilfe beim Script

Verfasst: Samstag 25. Januar 2020, 00:30
von sparrow
Ein Fehler in der Matrix!

viewtopic.php?t=47037

Re: Benötige Hilfe beim Script

Verfasst: Samstag 25. Januar 2020, 03:30
von __deets__
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.

Re: Benötige Hilfe beim Script

Verfasst: Samstag 25. Januar 2020, 10:57
von Sirius3
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.