it's resilient
This commit is contained in:
24
next_song.py
24
next_song.py
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python3
|
||||
#!/usr/bin/env python3
|
||||
import random, glob, os, json
|
||||
|
||||
|
||||
@@ -6,7 +6,12 @@ if __name__ == "__main__":
|
||||
|
||||
songs_folder = "/songs"
|
||||
jingles_folder = "/jingles"
|
||||
air_support_folder = "/air-support"
|
||||
|
||||
def get_air_support():
|
||||
return random.choice(glob.glob(f"{air_support_folder}/*.ogg"))
|
||||
|
||||
# state loading
|
||||
if not os.path.isfile(f"{songs_folder}/state.json"):
|
||||
# create state file if it doesnt exist
|
||||
with open(f"{songs_folder}/state.json", "w") as f:
|
||||
@@ -16,14 +21,25 @@ if __name__ == "__main__":
|
||||
with open(f"{songs_folder}/state.json") as f:
|
||||
state = json.load(f)
|
||||
|
||||
# song choice
|
||||
if state["current_song_type"] == "song":
|
||||
state["current_song_type"] = "jingle"
|
||||
print(random.choice(glob.glob(f"{jingles_folder}/*.ogg")))
|
||||
try:
|
||||
print(random.choice(glob.glob(f"{jingles_folder}/*.ogg")))
|
||||
except IndexError:
|
||||
print(get_air_support())
|
||||
elif state["current_song_type"] == "jingle":
|
||||
state["current_song_type"] = "song"
|
||||
print(random.choice(glob.glob(f"{songs_folder}/*.ogg")))
|
||||
try:
|
||||
print(random.choice(glob.glob(f"{songs_folder}/*.ogg")))
|
||||
except IndexError:
|
||||
print(get_air_support())
|
||||
else:
|
||||
exit(1)
|
||||
# should not happen
|
||||
# resiliency mode
|
||||
print(get_air_support())
|
||||
state = {"current_song_type": "jingle"}
|
||||
|
||||
# state saving
|
||||
with open(f"{songs_folder}/state.json", "w") as f:
|
||||
json.dump(state, f, indent=4)
|
||||
|
||||
Reference in New Issue
Block a user