
    @OOfP                     &   d dl Z d dlZ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 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j0                  e      Z G d de	j6                        Zy)    N)addons)flow)log)master)options)
optmanager)
errorcheck)
eventstore)	intercept)readfile)view)Proxyserver)app)static_viewer)	webaddonsc                   
    e Zd Zddej                  def fdZdej                  ddfdZ	dej                  ddfdZ
dej                  d	eddfd
ZddZdej                  ddfdZddZdee   ddfdZddZ fdZ xZS )	WebMasteroptswith_termlogc           
         t         |   ||       t        j                         | _        | j                  j                  j                  | j                         | j                  j                  j                  | j                         | j                  j                  j                  | j                         | j                  j                  j                  | j                         t        j                         | _        | j                  j                   j                  | j"                         | j                  j$                  j                  | j&                         | j(                  j*                  j                  | j,                          | j.                  j0                  t/        j2                           | j.                  j1                  t5        j6                         t9        j:                         t=        j>                         tA        jB                         | j                  | j                  tE        jF                                tI        jJ                  | | j(                  jL                        | _$        | j.                  jO                  d      | _(        | jP                  jR                  j*                  j                  | jT                         y )N)r   proxyserver)+super__init__r   Viewsig_view_addconnect_sig_view_addsig_view_remove_sig_view_removesig_view_update_sig_view_updatesig_view_refresh_sig_view_refreshr
   
EventStoreeventssig_add_sig_events_addsig_refresh_sig_events_refreshr   changed_sig_options_updater   adddefault_addonsr   WebAddonr   	Interceptr   ReadFileStdinr   StaticViewerr	   
ErrorCheckr   Application	web_debuggetr   servers_sig_servers_changed)selfr   r   	__class__s      [/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/web/master.pyr   zWebMaster.__init__   s   L9IIK			&&t'9'9:		!!))$*?*?@		!!))$*?*?@		""**4+A+AB ++-##D$8$89''(@(@A$$T%=%=>..01 !""$&&(IIKK!!#	
 ??4)?)?@(,(F  ((001J1JK    r   returnNc                 n    t         j                  j                  ddt        j                  |             y )Nflowsr,   resourcecmddatar   ClientConnection	broadcastflow_to_jsonr8   r   s     r:   r   zWebMaster._sig_view_add7   s-    &&%c.>.>t.D 	' 	
r;   c                 n    t         j                  j                  ddt        j                  |             y )Nr>   updater?   rC   rG   s     r:   r!   zWebMaster._sig_view_update<   s-    &&(1A1A$1G 	' 	
r;   indexc                 \    t         j                  j                  dd|j                         y )Nr>   remover?   )r   rD   rE   id)r8   r   rJ   s      r:   r   zWebMaster._sig_view_removeA   s!    &&XDGG&Tr;   c                 F    t         j                  j                  dd       y )Nr>   resetr@   rA   r   rD   rE   r8   s    r:   r#   zWebMaster._sig_view_refreshD   s    &&W&Er;   entryc                 n    t         j                  j                  ddt        j                  |             y )Nr%   r,   r?   )r   rD   rE   logentry_to_json)r8   rS   s     r:   r'   zWebMaster._sig_events_addG   s-    &&5s/C/CE/J 	' 	
r;   c                 F    t         j                  j                  dd       y )Nr%   rO   rP   rQ   rR   s    r:   r)   zWebMaster._sig_events_refreshL   s    &&g&Fr;   updatedc                     t        j                  | j                  |      }t        j                  j                  dd|       y )Nr   rI   r?   )r   
dump_dictsr   r   rD   rE   )r8   rW   options_dicts      r:   r+   zWebMaster._sig_options_updateO   s8    !,,T\\7C&&H< 	' 	
r;   c           
          t         j                  j                  ddd| j                  j                  D cg c]  }|j                          c}i       y c c}w )NstaterI   r6   r?   )r   rD   rE   r   r6   to_json)r8   ss     r:   r7   zWebMaster._sig_servers_changedU   sL    &&43C3C3K3KLaaiikLM 	' 	
 Ms   Ac                 .  K   t         j                  j                  j                          t         j                  j                  | j                  d      }	 |j                  | j                  j                  | j                  j                         t        j!                  d
| j                  j                   d| j                  j                   d       t"        | I          d {   S # t        $ r}d| j                  j                  xs d d| j                  j                   d| }|j                  t        j                  k(  r |d| j                  j                  dz    d	z  }t        |j                  ||j                        |d }~ww xY w7 w)Nl        )max_buffer_sizezWeb server failed to listen on *:z with z:
Try specifying a different port by using `--set web_port=   z`.zWeb server listening at http:///)tornadoioloopIOLoopcurrent
httpserver
HTTPServerr   listenr   web_portweb_hostOSErrorerrno
EADDRINUSEfilenameloggerinfor   running)r8   http_serveremessager9   s       r:   rt   zWebMaster.running\   s[    %%' ((33HHe 4 
	?t||44dll6K6KL 	-dll.C.C-DAdllF[F[E\\]^	
 W_&&&  	?78M8M8TQT7UUVW[WcWcWlWlVmmstusvwGww%***XY]YeYeYnYnqrYrXssuvv!''7AJJ7Q>		? 's8   AF:C, AF'F(F,	F5BFFF)T)r<   N)__name__
__module____qualname__r   Optionsboolr   r   Flowr   r!   intr   r#   r   LogEntryr'   r)   setstrr+   r7   rt   __classcell__)r9   s   @r:   r   r      s    LW__ LD L8
$)) 
 


TYY 
4 

UTYY Us Ut UF
S\\ 
d 

G
3s8 
 

' 'r;   r   )ro   loggingtornado.httpserverre   tornado.ioloop	mitmproxyr   r   r   r   r   r   mitmproxy.addonsr	   r
   r   r   r   mitmproxy.addons.proxyserverr   mitmproxy.tools.webr   r   r   	getLoggerrx   rr   Masterr    r;   r:   <module>r      sb               ' ' & % ! 4 # - )			8	$V' V'r;   