import requests import os import time # Loop and get new api def main(): response = {} id = -1 while True: try: response = api_get() if response["id"] != id: id = response["id"] 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) else: continue 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): 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()