
    vKg                         S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJr  S S	KJrJrJr  \R*                  " \5      rS
rSrSr " S S5      r " S S5      rg)    N)storage)InterceptRequestHandler)RequestModifier)addons)Master)Options)ProxyConfigProxyServer)build_proxy_argsextract_cert_and_keyget_upstream_proxyFTc                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
	MitmProxy   z+Run and manage a mitmproxy server instance.c                    X0l         [        R                  " S0 U R                  5       D6U l        [	        U R                  R
                  UR                  S5      UR                  S5      S9  [        5       U l        / U l	        S U l
        S U l        [        R                  " 5       U l        [        5       n[!        U R                  U5      U l        U R"                  R$                  R&                  " [$        R(                  " 5       6   U R"                  R$                  R'                  [+        5       5        U R"                  R$                  R'                  [-        U 5      5        UR.                  " SU R                  R
                  UUUR                  S[0        5      (       + [2        UR                  S[4        5      S.[7        [9        U R                   5      5      DUR;                  5        VVs0 sH#  u  pVUR=                  S5      (       d  M  USS  U_M%     snnD6  [?        [A        U5      5      U R"                  l!        UR                  S	S
5      (       a	  S/U l	        g g s  snnf )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.13/site-packages/seleniumwire/server.py__init__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MODAq||G7LxquaxOM
	
 )^)DE;;(%00&DK 1 Ns   ,I
Ic                     [         R                  " U R                  5        U R                  R	                  U R                  5        g)zRun the server.N)r*   set_event_loopr,   r-   run_loopr8   s    r>   serve_foreverMitmProxy.serve_foreverB   s.    t//0T--.    c                 B    U R                   R                  R                  $ )zFGet a tuple of the address and port the proxy server
is listening on.
)r-   r7   addressrD   s    r>   rI   MitmProxy.addressG   s     {{!!)))rG   c                 l    U R                   R                  5         U R                  R                  5         g)z,Shutdown the server and perform any cleanup.N)r-   shutdownr   cleanuprD   s    r>   rL   MitmProxy.shutdownM   s"    rG   c                     U R                   R                  S5      S:H  U R                   R                  S5      U R                   R                  S5      S.nU$ )Nrequest_storagememoryrequest_storage_base_dirrequest_storage_max_size)memory_onlybase_dirmaxsize)r!   r%   )r8   storage_argss     r>   r#   MitmProxy._get_storage_argsR   sO    <<++,=>(J(()CD||''(BC
 rG   )r,   r-   r&   r!   r(   r)   r'   r   N)__name__
__module____qualname____firstlineno____doc__r?   rE   rI   rL   r#   __static_attributes__r    rG   r>   r   r      s    5)!V/
*
rG   r   c                       \ rS rSrS rSrg)r0   \   c                     [        [        UR                  R                  SS5      [        R                  5      " UR
                  5        g)z4Send a mitmproxy log message through our own logger.warnwarningN)getattrloggerlevelreplaceinfomsg)r8   entrys     r>   logSendToLogger.log]   s,    ++FI>LUYYWrG   r    N)rY   rZ   r[   r\   rk   r^   r    rG   r>   r0   r0   \   s    XrG   r0   )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   	getLoggerrY   re   r2   r3   r4   r   r0   r    rG   r>   <module>rw      sa        8 1 4 ; = M Y Y			8	$   %) "E EPX XrG   