
    hg                         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dS )    N)storage)InterceptRequestHandler)RequestModifier)addons)Master)Options)ProxyConfigProxyServer)build_proxy_argsextract_cert_and_keyget_upstream_proxyFTc                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )	MitmProxyz+Run and manage a mitmproxy server instance.c                 b   || _         t          j        di |                                 | _        t	          | j        j        |                    d          |                    d                     t                      | _        g | _	        d | _
        d | _        t          j                    | _        t                      }t!          | j        |          | _         | j        j        j        t%          j                      | j        j                            t+                                 | j        j                            t-          |                       |j        d| j        j        |||                    dt0                     t2          |                    dt4                    dt7          t9          | j                             d |                                D              t=          t?          |                    | j        _         |                    dd	          r
d
g| _	        d S d S )Nca_certca_key)	cert_pathkey_path
verify_sslsuppress_connection_errors)confdirlisten_hostlisten_portssl_insecurestream_websocketsr   c                 T    i | ]%\  }}|                     d           |dd         |&S )mitm_   N)
startswith).0kvs      L/var/www/fb-scrape/myenv/lib/python3.11/site-packages/seleniumwire/server.py
<dictcomp>z&MitmProxy.__init__.<locals>.<dictcomp>:   s7    MMMDAqq||G7L7LMquaMMM    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   itemsr
   r	   server)selfhostportr(   mitmproxy_optss        r#   __init__zMitmProxy.__init__   s    ~AA(>(>(@(@AAT\2gkk)>T>T_f_j_jks_t_tuuuu ()) #' $(!"133 T-~>> 5 7 788|~~...6t<<=== 
	
L)$[[7IJJJ7'.{{3OQs't't
	
 
	
 1$,??@@
	
 NMGMMOOMMM
	
 
	
 
	
 )^)D)DEE;;(%00 	!&DKKK	! 	!r%   c                 v    t          j        | j                   | j                            | j                   dS )zRun the server.N)r1   set_event_loopr3   r4   run_loopr>   s    r#   serve_foreverzMitmProxy.serve_foreverB   s5    t/000T-.....r%   c                 $    | j         j        j        S )zVGet a tuple of the address and port the proxy server
        is listening on.
        )r4   r=   addressrF   s    r#   rI   zMitmProxy.addressG   s     {!))r%   c                 j    | j                                          | j                                         dS )z,Shutdown the server and perform any cleanup.N)r4   shutdownr   cleanuprF   s    r#   rK   zMitmProxy.shutdownM   s0    r%   c                     | j                             d          dk    | j                             d          | j                             d          d}|S )Nrequest_storagememoryrequest_storage_base_dirrequest_storage_max_size)memory_onlybase_dirmaxsize)r(   r,   )r>   storage_argss     r#   r*   zMitmProxy._get_storage_argsR   sW    <++,=>>(J(()CDD|''(BCC
 
 r%   N)	__name__
__module____qualname____doc__rB   rG   rI   rK   r*   r'   r%   r#   r   r      sf        55)! )! )!V/ / /
* * *  
    r%   r   c                       e Zd Zd ZdS )r7   c                      t          t          |j                            dd          t          j                  |j                   dS )z4Send a mitmproxy log message through our own logger.warnwarningN)getattrloggerlevelreplaceinfomsg)r>   entrys     r#   logzSendToLogger.log]   s:    L++FI>>LLUYWWWWWr%   N)rV   rW   rX   re   r'   r%   r#   r7   r7   \   s(        X X X X Xr%   r7   )r1   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   	getLoggerrV   r_   r9   r:   r;   r   r7   r'   r%   r#   <module>rp      sJ                 8 8 8 8 8 8 1 1 1 1 1 1 4 4 4 4 4 4 ; ; ; ; ; ; = = = = = = M M M M M M M M Y Y Y Y Y Y Y Y Y Y		8	$	$   %) "E E E E E E E EPX X X X X X X X X Xr%   