import requests import os import time import sys debug = False try: if sys.argv[1] == "debug": debug = True except: debug = False # Loop and get new api def main(): response = {} id = -1 while True: try: response = api_get() if debug: print(response) match response["action_type"]: case "output": character = get_character(response["character"]) output(character, response["content"]) case "choice": user_choice = choice(response["choices"]) time.sleep(0.5) continue case "end": print("Exitting successfully") os._exit(0) except: print("Server not up or cannot be reached") input() # Enter to go to next loop (testing) # Make choice def choice(choices): api_url = "http://localhost:20264/choice" for (index,choice) in enumerate(choices): print(f"{index}: {choice}") try: choice = int(input()) except: choice = 0 print("Invalid choice, defaulting to 0") requests.post(api_url, json=choice); # Character outputs text to the user def output(character, text): print(character["name"], "says") print(text) # Get user from the backend def get_character(character): if character.lower() == "narrator": return {"name": "narrator"} api_url = f"http://localhost:20264/character/{character}" return requests.get(api_url).json() # Normal API request def api_get(): api_url = "http://localhost:20264/happening/" response = requests.get(api_url).json() return response main()