it's resilient

This commit is contained in:
Aethor
2021-06-15 23:27:04 +02:00
parent 147f406219
commit 88aa22ad32
8 changed files with 31 additions and 14 deletions

View File

@@ -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)