# Print a call's transcript, turn by turn. Python 3.9+ with requests.
import os
import sys

import requests

base = os.environ.get("RELATIONSAI_API_BASE", "https://voice-api.relationsai.com/v1")
call_id = os.environ.get("CALL_ID") or sys.exit("Set CALL_ID to a call id (call_...)")

r = requests.get(
    f"{base}/calls/{call_id}/transcript",
    headers={"Authorization": f"Bearer {os.environ['RELATIONSAI_API_KEY']}"},
    timeout=30,
)
transcript = r.json()
if not r.ok:
    err = transcript["error"]
    sys.exit(f"{err['code']}: {err['message']} (request {err['request_id']})")
print(f"state={transcript['state']} simulated={transcript['simulated']}")
if transcript["state"] == "pending":
    print("Not ready yet: wait for call.settled, then read it again.")
for turn in transcript["turns"]:
    start = turn["start_ms"] if turn["start_ms"] is not None else "?"
    print(f"[{start} ms] {turn['speaker']}: {turn['text']}")
