
    'hR	                     H    d dl Z d dlmZmZ d dlmZ d dlmZ  G d d      Zy)    N)ctx
exceptions)http1)humanc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	StreamBodiesc                     d | _         y )N)max_size)selfs    u/var/www/html/scrapers/gsc/venv/lib/python3.12/site-packages/seleniumwire/thirdparty/mitmproxy/addons/streambodies.py__init__zStreamBodies.__init__	   s	        c                     |j                  dt        j                  t           d d       |j                  dt        dd       y )Nstream_large_bodiesz
            Stream data to the client if response body exceeds the given
            threshold. If streamed, the body will not be stored in any way.
            Understands k/m/g suffixes, i.e. 3m for 3 megabytes.
            stream_websocketsFz
            Stream WebSocket messages between client and server.
            Messages are captured and cannot be modified.
            )
add_optiontypingOptionalstrbool)r   loaders     r   loadzStreamBodies.load   sA    !6??3#7	
 	u	
r   c                     d|v rOt         j                  j                  r4	 t        j                  t         j                  j                        | _        y y y # t        $ r}t        j                  |      d }~ww xY w)Nr   )	r   optionsr   r   
parse_sizer
   
ValueErrorr   OptionsError)r   updatedes      r   	configurezStreamBodies.configure   sc     G+0O0O1 % 0 01P1P Q 1P+  1 --a001s   2A 	A8A33A8c                    | j                   r|r|j                  n|j                  }	 t        j                  |j                  |s|j                  nd       }|r|j                  sud|cxk  r| j                   k  s_n |j                  xs d|_
        t        j                  j                  dj                  |sdnd|j                  j                               y y y y y # t
        j                  $ r |j                  j                          Y y w xY w)Nr   TzStreaming {} {}zresponse fromz
request to)r
   requestresponser   expected_http_body_sizer   HttpExceptionreplykillraw_contentstreamr   loginfoformathost)r   f
is_requestrexpected_sizes        r   runzStreamBodies.run$   s    =='		QZZA % = =IIqzz! Q]]A<_RVR_R_<_88+t.55Zo]iklktktkykyz{ =`]}  ++ s   .C -DDc                 (    | j                  |d       y )NTr2   r   r.   s     r   requestheaderszStreamBodies.requestheaders3   s    Dr   c                 (    | j                  |d       y )NFr4   r5   s     r   responseheaderszStreamBodies.responseheaders6   s    Er   c                 D   t         j                  j                  rd|_        t         j                  j                  dj                  t        j                  |j                  j                        t        j                  |j                  j                                     y y )NTz:Streaming WebSocket messages between {client} and {server})clientserver)r   r   r   r)   r*   r+   r,   r   format_addressclient_connaddressserver_connr5   s     r   websocket_startzStreamBodies.websocket_start9   sp    ;;((AHGGLLU\\++AMM,A,AB++AMM,A,AB ] D  )r   N)
__name__
__module____qualname__r   r   r    r2   r6   r8   r@    r   r   r   r      s&    
"1|r   r   )	r   !seleniumwire.thirdparty.mitmproxyr   r   *seleniumwire.thirdparty.mitmproxy.net.httpr   'seleniumwire.thirdparty.mitmproxy.utilsr   r   rD   r   r   <module>rH      s     = < 97 7r   