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, )