o
    nYiT                     @   sB   d dl mZmZmZ d dlZd dlZd dlmZ G dd dZdS )    )	WSMsgTypeClientSessionClientWebSocketResponseN)Messagec                   @   sL   e Zd ZefddZedd Zdd Zdd Zd	d
 Z	dd Z
dd ZdS )
Connectionc                 C   s,   | | _ || _| |j| _d | _i | _d S N)_sessionclient
_checkHosthostws	_requests)selfr	   session r   _/var/www/html/asistente-voz-ia/venv/lib/python3.10/site-packages/signalwire/blade/connection.py__init__   s
   
zConnection.__init__c                 C   s   | j d uo
| j jdkS )NF)r   closedr   r   r   r   	connected   s   zConnection.connectedc                 C   s   t d|rdnd}|| S )Nz^(ws|wss):\/\/ zwss://)rematch)r   r   protocolr   r   r   r
      s   zConnection._checkHostc                    s2   t d|jdd  | j| I d H  d S )NzSEND: 
   )indent)loggingdebugto_jsonr   send_str)r   messager   r   r   send   s   zConnection.sendc                    s.   t d| j | j| jI d H | _d S )NzConnecting to: {0})r   r   formatr   r   
ws_connectr   r   r   r   r   connect   s   zConnection.connectc                    s   | j 2 z;3 d H W }td|j  |jtjkr#| jt	
|j q|jtjkr1td  d S |jtjkr?td  d S q6 d S )NzRECV: 
zWebSocket Closed!zWebSocket Error!)r   r   r   datatyper   TEXTr	   message_handlerr   	from_jsonCLOSEDinfoERROR)r   msgr   r   r   read   s   

zConnection.readc                    s    | j r| j I d H  d S d S r   )r   r   closer   r   r   r   r/   +   s   zConnection.closeN)__name__
__module____qualname__r   r   propertyr   r
   r!   r$   r.   r/   r   r   r   r   r      s    
r   )	aiohttpr   r   r   r   r   !signalwire.blade.messages.messager   r   r   r   r   r   <module>   s
    