the-emergent-show / timing.py
inventwithdean
add dynamic cameras and youtube chat
7b58f25
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,
)