o
    tT8j6                     @  sn   d Z ddlmZ ddlZddlZddlZddlZddlm	Z	 dZ
dd	d
ZddddZdddZdddZdS ) u,  ElevenLabs Conversational-AI (Realtime-Agent) — API-Helfer.

Zieht die vollständigen Gesprächs-Transkripte des Plappi-Agenten von ElevenLabs.
Jeder Turn (Kind + Plappi) wird dort serverseitig protokolliert → das ist unser
detailliertes Log (#3), das wir lokal spiegeln und im Dashboard zeigen.
    )annotationsN   )configzhttps://api.elevenlabs.iopathstrc              
   C  s   t jjt |  dd}|dtj z#t jj|dd}t	|
 W  d    W S 1 s/w   Y  W d S  t jjyX } ztd|j d|
  d d  d d }~ww )	NGET)methodz
xi-api-key(   )timeoutzconvai HTTP z:    )urllibrequestRequestAPI
add_headerr   ELEVENLABS_API_KEYurlopenjsonloadsreaderror	HTTPErrorRuntimeErrorcodedecode)r   reqre r   2/home/nk/hobo-godmode/plappi-mvp/backend/convai.py_get   s   ((r    d   agent_id
str | None	page_sizeintreturn
list[dict]c                 C  sD   | pt j} tj| |d}td| }t|tr |dg S g S )N)r"   r$   z/v1/convai/conversations?conversations)	r   ELEVENLABS_AGENT_IDr   parse	urlencoder    
isinstancedictget)r"   r$   qdatar   r   r   list_conversations   s   
r1   conversation_idr-   c                 C  s   t d|  S )u    Volltranskript eines Gesprächs.z/v1/convai/conversations/)r    )r2   r   r   r   get_conversation$   s   r3   convc                 C  sj   g }|  dg p	g D ](}| dd}|dv rdnd}| dp d }|s&q
|||| dd	 q
|S )
zF-> [{role: 'plappi'|'child', text, ts}] aus einem Conversation-Objekt.
transcriptrole )agent	assistantplappichildmessagetime_in_call_secs)r6   textts)r.   stripappend)r4   outmr6   whor>   r   r   r   transcript_turns)   s   rE   )r   r   )Nr!   )r"   r#   r$   r%   r&   r'   )r2   r   r&   r-   )r4   r-   r&   r'   )__doc__
__future__r   r   urllib.errorr   urllib.parseurllib.requestr7   r   r   r    r1   r3   rE   r   r   r   r   <module>   s    


