
    dh                    >   d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d dlZd dlmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d	d
lm Z  d	dl!m"Z" d	dl#m$Z$ ddl%m&Z& erddl'm(Z( ee)ee)ef   f   Z*e	e*   Z+ee+e*f   Z,ddZ-ddZ. G d de&      Z/y)    )annotationsN)TYPE_CHECKINGAnyAsyncGeneratorDictIterableListOptionalTupleTypeUnioncast)	BasicAuthClientErrorClientSessionFormDataTCPConnector)
USER_AGENT)SERVER_SOFTWARE)__version__)TelegramMethod   )TelegramNetworkError)TelegramType)	InputFile   )BaseSession   )Botc                    ddl m} d }t        | t              r| }n| \  }} ||      \  }}}}}t        |t              r|j
                  }|j                  }|||||ddS )Nr   )parse_proxy_urlT)
proxy_typehostportusernamepasswordrdns)aiohttp_socks.utilsr!   
isinstancestrr   loginr&   )	basicr!   
proxy_auth	proxy_urlr"   r#   r$   r%   r&   s	            X/var/www/netwell/bot/venv/lib/python3.12/site-packages/aiogram/client/session/aiohttp.py_retrieve_basicr0   (   sv    3&*J%	 %	:1@1K.JdHh*i(##&& !     c           
     *   ddl m}m}m} t	        | t
              st	        | t              r+t        |       dk(  rt        t        |       } |t        |       fS t        t        |       } g }| D ]"  }|j                   |di t        |             $ |d|ifS )Nr   )ChainProxyConnectorProxyConnector	ProxyInfor   proxy_infos )aiohttp_socksr3   r4   r5   r)   r*   tuplelenr   _ProxyBasicr0   _ProxyChainappend)chain_or_plainr3   r4   r5   infosr,   s         r/   _prepare_connectorr@   A   s    LL .#&>5)c..AQ.Fk>:~>>>+~6NE :Y8!789:  666r1   c                       e Zd Z	 d	 	 	 	 	 	 	 d fdZddZedd       Zej                  dd       ZddZddZ	ddZ
	 d	 	 	 	 	 	 	 ddZ	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd	Zdd
Z xZS )AiohttpSessionc                *   t        |   di | d| _        t        | _        t        j                  t        j                               |dd| _	        d| _
        d| _        |	 | j                  |       yy# t        $ r}t        d      |d}~ww xY w)a  
        Client session based on aiohttp.

        :param proxy: The proxy to be used for requests. Default is None.
        :param limit: The total number of simultaneous connections. Default is 100.
        :param kwargs: Additional keyword arguments.
        N)cafilei  )ssllimitttl_dns_cacheTzbIn order to use aiohttp client for proxy requests, install https://pypi.org/project/aiohttp-socks/r7   )super__init___sessionr   _connector_typerE   create_default_contextcertifiwhere_connector_init_should_reset_connector_proxy_setup_proxy_connectorImportErrorRuntimeError)selfproxyrF   kwargsexc	__class__s        r/   rI   zAiohttpSession.__init__U   s     	"6"153?--W]]_E!0

 (,$,0++E2   "> s   %A8 8	BBBc                B    t        |      \  | _        | _        || _        y N)r@   rK   rO   rQ   rU   rV   s     r/   rR   z%AiohttpSession._setup_proxy_connectort   s    5G5N2d2r1   c                    | j                   S r[   )rQ   rU   s    r/   rV   zAiohttpSession.proxyx   s    {{r1   c                4    | j                  |       d| _        y )NT)rR   rP   r\   s     r/   rV   zAiohttpSession.proxy|   s    ##E*'+$r1   c                >  K   | j                   r| j                          d {    | j                  | j                  j                  rFt	         | j
                  di | j                  t        t         dt         i      | _        d| _         | j                  S 7 xw)Nz	 aiogram/)	connectorheadersFr7   )
rP   closerJ   closedr   rK   rO   r   r   r   r^   s    r/   create_sessionzAiohttpSession.create_session   s     ''**,== DMM$8$8).$..F1E1EF?"39[M JDM ,1D(}} s    BBA9Bc                   K   | j                   W| j                   j                  s@| j                   j                          d {    t        j                  d       d {    y y y 7 $7 	w)Ng      ?)rJ   rd   rc   asynciosleepr^   s    r/   rc   zAiohttpSession.close   sX     ==$T]]-A-A--%%''' --%%% .B$' &s$   A A+A'A+A) A+)A+c                V   t        d      }i }|j                  d      j                         D ].  \  }}| j                  |||      }|s|j	                  ||       0 |j                         D ]6  \  }}|j	                  ||j                  |      |j                  xs |       8 |S )NF)quote_fields)warnings)botfiles)filename)r   
model_dumpitemsprepare_value	add_fieldreadrn   )rU   rl   methodformrm   keyvalues          r/   build_form_datazAiohttpSession.build_form_data   s    U+&( ++U+;AAC 	'JC&&u#U&CENN3&		'
  ++- 	JCNN

3.3  	 r1   c                  K   | j                          d {   }| j                  j                  |j                  |j                        }| j                  ||      }	 |j                  |||| j                  n|      4 d {   }|j                          d {   }d d d       d {    | j                  ||j                         }
t#        t$        |
j&                        S 7 7 g7 Q7 C# 1 d {  7  sw Y   SxY w# t        j                  $ r t        |d      t        $ r*}	t        |t        |	      j                   d|	       d }	~	ww xY ww)N)tokenrt   )rl   rt   )datatimeoutzRequest timeout error)rt   messagez: )rl   rt   status_codecontent)re   apiapi_urlrz   __api_method__rx   postr|   textrg   TimeoutErrorr   r   type__name__check_responsestatusr   r   result)rU   rl   rt   r|   sessionurlru   resp
raw_resulteresponses              r/   make_requestzAiohttpSession.make_request   sR     ++--hhSYYv7L7LM##F#;	Z||$W $  / /#'99;.
/ / &&FZ ' 
 L(//22# ./ // / / / ## 	W&f>UVV 	Z&faAQAQ@RRTUVTW>XYY	Zs   EC,AE &D	 C.D	 
C4C0C4#D	 .C2/D	 3:E.D	 0C42D	 4D:C=;DD	 	(E1%EEEc               .  K   |i }| j                          d {   }|j                  ||||      4 d {   }|j                  j                  |      2 3 d {   }| 7 L7 07 6 d d d       d {  7   y # 1 d {  7  sw Y   y xY ww)N)r|   rb   raise_for_status)re   getr   iter_chunked)	rU   r   rb   r|   
chunk_sizer   r   r   chunks	            r/   stream_contentzAiohttpSession.stream_content   s      ?G++--;;'DT  
 	 	#||88D  e .	D	 	 	 	 	sx   BA'BA)BB A-A+A- B 'B)B+A--B .B9A<:B BB	BBc                B   K   | j                          d {    | S 7 wr[   )re   r^   s    r/   
__aenter__zAiohttpSession.__aenter__   s"     !!### 	$s   )Nd   )rV   Optional[_ProxyType]rF   intrW   r   returnNone)rV   
_ProxyTyper   r   )r   r   )r   r   )r   r   )rl   r   rt   TelegramMethod[TelegramType]r   r   r[   )rl   r   rt   r   r|   zOptional[int]r   r   )N   i   T)r   r*   rb   zOptional[Dict[str, Any]]r|   r   r   r   r   boolr   zAsyncGenerator[bytes, None])r   rB   )r   
__module____qualname__rI   rR   propertyrV   setterre   rc   rx   r   r   r   __classcell__)rY   s   @r/   rB   rB   T   s    ?B)9<NQ	>   \\, ,&" X\33 <3GT3	32 -1!% * 	
   
%&r1   rB   )r,   r;   r   zDict[str, Any])r>   r   r   z+Tuple[Type['TCPConnector'], Dict[str, Any]])0
__future__r   rg   rE   typingr   r   r   r   r   r	   r
   r   r   r   r   rM   aiohttpr   r   r   r   r   aiohttp.hdrsr   aiohttp.httpr   aiogram.__meta__r   aiogram.methodsr   
exceptionsr   methods.baser   typesr   baser   rl   r   r*   r;   r<   r   r0   r@   rB   r7   r1   r/   <module>r      s    "  
     Q Q # ( ( * . (  CsI~../{#;+,
27&[ r1   