File size: 1,670 Bytes
7992c94 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import time
import requests
import os
from dotenv import load_dotenv
from host import Host
load_dotenv()
unreal_orchestrator_url = os.getenv("ORCHESTRATOR_URL")
api_key_unreal = os.getenv("API_KEY_UNREAL")
class TimeManager:
def __init__(self, host: Host, show_state: dict):
self.show_state = show_state
self.single_response_time_limit = 90 # seconds
self.headers = {"Content-Type": "application/json", "x-api-key": api_key_unreal}
self.host = host
def guest_time_limit(self):
while True:
time.sleep(1)
if self.show_state["current_guest"] is None:
continue
self.show_state["time_since_last_guest_message"] += 1
if (
self.show_state["time_since_last_guest_message"]
>= self.single_response_time_limit
):
print("Guest took too long to respond, wrapping up the show.")
self.show_state["current_guest"] = None
host_response = self.host.guest_took_too_long_to_respond()
self.time_since_last_guest_message = 0
payload = {"text": host_response, "is_host": True}
response = requests.post(
url=f"{unreal_orchestrator_url}/tts",
json=payload,
headers=self.headers,
)
if response.status_code != 200:
return "Something went wrong!"
requests.post(
url=f"{unreal_orchestrator_url}/wrapup",
json={},
headers=self.headers,
)
|