Client is approx 5% done
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
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")
|
||||
requests.post("127.0.0.1:20264", json=0);
|
||||
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()
|
||||
Reference in New Issue
Block a user