
    Dg                         d dl Z d dl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mZ d d	lmZmZmZ  ej*                  e      Zd
ZdZdZ G d d      Z G d d      Zy)    N)storage)InterceptRequestHandler)RequestModifier)addons)Master)Options)ProxyConfigProxyServer)build_proxy_argsextract_cert_and_keyget_upstream_proxyFTc                   .    e Zd ZdZd Zd Zd Zd Zd Zy)	MitmProxyz+Run and manage a mitmproxy server instance.c                    || _         t        j                  di | j                         | _        t	        | j                  j
                  |j                  d      |j                  d             t               | _        g | _	        d | _
        d | _        t        j                         | _        t               }t!        | j                  |      | _         | j"                  j$                  j&                  t%        j(                           | j"                  j$                  j'                  t+                      | j"                  j$                  j'                  t-        |               |j.                  d| j                  j
                  |||j                  dt0               t2        |j                  dt4              dt7        t9        | j                               |j;                         D ci c]  \  }}|j=                  d      s|dd  | c}} t?        tA        |            | j"                  _!        |j                  d	d
      r	dg| _	        y y c c}}w )Nca_certca_key)	cert_pathkey_path
verify_sslsuppress_connection_errors)confdirlisten_hostlisten_portssl_insecurestream_websocketsr   mitm_   disable_captureFz$^ )"optionsr   create_get_storage_argsr   home_dirgetr   modifierscopesrequest_interceptorresponse_interceptorasyncionew_event_loop_event_loopr   r   masterr   adddefault_addonsSendToLoggerr   updateDEFAULT_VERIFY_SSLDEFAULT_STREAM_WEBSOCKETS"DEFAULT_SUPPRESS_CONNECTION_ERRORSr   r   items
startswithr
   r	   server)selfhostportr    mitmproxy_optskvs          S/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/seleniumwire/server.py__init__zMitmProxy.__init__   s    ~~A(>(>(@AT\\22gkk)>T_f_j_jks_tu () #' $(!"113 T--~> 5 5 78|~.6t<= 
	
LL))$[[7IJJ7'.{{3OQs't
	
 1$,,?@
	
 %,MMOMDAqq||G7LquaxM
	
 )^)DE;;(%0&DK 1 Ns   )IIc                     t        j                  | j                         | j                  j	                  | j                         y)zRun the server.N)r)   set_event_loopr+   r,   run_loopr7   s    r=   serve_foreverzMitmProxy.serve_foreverB   s.    t//0T--.    c                 B    | j                   j                  j                  S )zVGet a tuple of the address and port the proxy server
        is listening on.
        )r,   r6   addressrB   s    r=   rF   zMitmProxy.addressG   s     {{!!)))rD   c                 l    | j                   j                          | j                  j                          y)z,Shutdown the server and perform any cleanup.N)r,   shutdownr   cleanuprB   s    r=   rH   zMitmProxy.shutdownM   s"    rD   c                     | j                   j                  d      dk(  | j                   j                  d      | j                   j                  d      d}|S )Nrequest_storagememoryrequest_storage_base_dirrequest_storage_max_size)memory_onlybase_dirmaxsize)r    r$   )r7   storage_argss     r=   r"   zMitmProxy._get_storage_argsR   sO    <<++,=>(J(()CD||''(BC
 rD   N)	__name__
__module____qualname____doc__r>   rC   rF   rH   r"   r   rD   r=   r   r      s    5)!V/
*
rD   r   c                       e Zd Zd Zy)r/   c                      t        t        |j                  j                  dd      t        j                        |j
                         y)z4Send a mitmproxy log message through our own logger.warnwarningN)getattrloggerlevelreplaceinfomsg)r7   entrys     r=   logzSendToLogger.log]   s.    L++FI>LUYYWrD   N)rS   rT   rU   rb   r   rD   r=   r/   r/   \   s    XrD   r/   )r)   loggingseleniumwirer   seleniumwire.handlerr   seleniumwire.modifierr   !seleniumwire.thirdparty.mitmproxyr   (seleniumwire.thirdparty.mitmproxy.masterr   )seleniumwire.thirdparty.mitmproxy.optionsr   (seleniumwire.thirdparty.mitmproxy.serverr	   r
   seleniumwire.utilsr   r   r   	getLoggerrS   r\   r1   r2   r3   r   r/   r   rD   r=   <module>rm      sc        8 1 4 ; = M Y Y			8	$   %) "E EPX XrD   