
    @OOfU                      z   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlm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! d dlm"Z" d dl#m$Z$  ede%e&      Z' G d dejP                        Z)y)    N)TypeVar)AddThreadSelectorEventLoop)addons)log)master)options)
errorcheck)
eventstore)	intercept)readfile)view)consoleaddons)defaultkeys)keymap)palettes)signals)window)strutilsTc                       e Zd Zdej                  ddf fdZ fdZddZddZde	j                  fd	Zd
 Zej                  d        ZdefdZdefdZdedefdZd ZddZd Zd fdZ fdZd Zd Zd Z xZS )ConsoleMasteroptsreturnNc                 N   t         |   |       t        j                         | _        t	        j
                         | _        | j                  j                  j                  | j                         d | _
        t        j                  |       | _        t        j                  | j                         | j                  j                   j                  | j"                          | j$                  j&                  t%        j(                           | j$                  j'                  t+        j,                         | j                  | j                  t/        j0                         t3        j4                  |       t        j6                  |       t9        j:                  d             d | _        y )NT)repeat_errors_on_stderr)super__init__r   Viewr
   
EventStoreeventssig_addconnectsig_add_logstream_pathr   Keymapr   mapr   erroredoptions_errorr   adddefault_addonsr   	Interceptr   ReadFiler   ConsoleAddonKeymapConfigr	   
ErrorCheckr   )selfr   	__class__s     _/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/master.pyr   zConsoleMaster.__init__&   s   #yy{	 ++-##D$4$45mmD)$$$T%7%78..01!IIKK&&t,%!!$?	
 -1    c                 b    t         |   ||       t        j                  j	                          y N)r   __setattr__r   update_settingssend)r0   namevaluer1   s      r2   r6   zConsoleMaster.__setattr__?   s$    D%($$&r3   c                 X    t         j                  j                  t        |      d       y )N   messageexpire)r   status_messager8   str)r0   excs     r2   r(   zConsoleMaster.options_errorC   s    ##CHQ#?r3   c                 `    t         j                  j                  dddg| j                         y )NQuit)yesy)non)promptkeyscallback)r   status_prompt_onekeyr8   quitr0   s    r2   prompt_for_exitzConsoleMaster.prompt_for_exitF   s2    $$)) YY 	* 	
r3   entryc                    t        j                  | j                  j                        t        j                  |j                        k  ry |j                  dv rlt
        j                  j                  |j                  |j                  j                          dt        |j                        j                          fd       y y )N)errorwarnalertz:    r=   )r   log_tierr   console_eventlog_verbositylevelr   r@   r8   titlerA   msglstrip)r0   rP   s     r2   r#   zConsoleMaster.sig_add_logP   s    <<??@3<<KKD
 
 ;;44""''KK{{((*+2c%))n.C.C.E-FG  (  5r3   c                 H    fd}| j                   j                  ||       y )Nc                              S r5    )_rK   s    r2   cbz%ConsoleMaster.sig_call_in.<locals>.cb_   s    :r3   )loopset_alarm_in)r0   secondsrK   r`   s     ` r2   sig_call_inzConsoleMaster.sig_call_in^   s    	 			w+r3   c              #   h  K   | j                   j                          	 d  | j                   j                          d | j                   _        | j                   j	                          y # | j                   j                          d | j                   _        | j                   j	                          w xY wwr5   )ra   stopstartscreen_sizedraw_screenrN   s    r2   	uistoppedzConsoleMaster.uistoppedd   ss     			$IIOO$(DII!II!!# IIOO$(DII!II!!#s   B2A( AB2(AB//B2c                     t         j                  j                  d      x}r|S t         j                  j                  d      x}r|S dD ]  }t        j                  |      s|c S  t         j
                  dk(  ryy)NMITMPROXY_EDITOREDITOR)zsensible-editornanovimntnotepadvi)osenvirongetshutilwhichr9   )r0   meditors      r2   
get_editorzConsoleMaster.get_editorn   sp    

12212H

x((1(H6 	F||F#	 77d?r3   c                 j    g d}|D ]  }t        j                  |      s|c S  | j                         S )N)ghexblesshexedithxdhexerhexcurse)rv   rw   rz   )r0   editorsry   s      r2   get_hex_editorzConsoleMaster.get_hex_editor|   s6    J 	F||F#	   r3   datac                    t        |t              }t        j                  dd|      \  }}t        |t              xr t        j                  |      }t        ||rdnd      5 }|j                  |       d d d        |r| j                         }n| j                         }t        j                  |      }|j                  |       | j                         5  	 t        j                   |       t        ||rdnd      5 }|j#                         }d d d        d d d        t-        j.                  |       |S # 1 sw Y   xY w# 1 sw Y   4xY w# t$        $ r& t&        j(                  j+                  d|z  	       Y ew xY w# 1 sw Y   jxY w)
N 	mitmproxy)textwwbrrbzCan't start editor: %sr>   )
isinstancerA   tempfilemkstempbytesr   is_mostly_binopenwriter   rz   shlexsplitappendrj   
subprocesscallread	Exceptionr   r@   r8   rs   unlink)	r0   r   r   fdr9   with_hexeditorfccmds	            r2   spawn_editorzConsoleMaster.spawn_editor   sK   $$##B$?D#D%0QX5K5KD5Q"Tct, 	GGDM	##%A!Akk!n

4^^ 	$$$ $t6 $!668D$	$ 			$#	 	$ $  R&&++4Lq4P+QR	$ 	$sT   #D5E?E-E?=EE?5D>E
	E?,E<9E?;E<<E??Fc                    |r.|j                  d      d   }t        j                  |      xs d}nd}t        j                  |d      \  }}t        j                  ||       t        j                  |       t        j                  |t        j                         t
        j                  j                  d      xs@ t
        j                  j                  d      xs t
        j                  j                  d      }|sd}t        j                   |      }|j                  |       | j                         5  	 t!        j"                  |d	
       d d d        t/        j0                  dt
        j2                  |g      }|j5                          y # t$        $ r5 t&        j(                  j+                  ddj-                  |      z         Y }w xY w# 1 sw Y   xY w)N;r   r   mproxyrl   PAGERrm   lessF)shellzCan't start external viewer: %s r   g      ?)args)r   	mimetypesguess_extensionr   r   rs   r   closechmodstatS_IREADrt   ru   r   r   rj   r   r   r   r   r@   r8   join	threadingTimerr   rg   )	r0   r   contenttypeextr   r9   r   r   ts	            r2   spawn_external_viewerz#ConsoleMaster.spawn_external_viewer   sk   %++C03K++K8>BCC##C2D
T
 	t||$ JJNN-. (zz~~g&(zz~~h' 	

 Akk!n

4^^ 	51	 OOC$8		  &&++=K , 	 	s*   6G8F;G
GGGGc                     | j                   j                  t        j                  | j                  j                     j                  | j                  j                               | j                   j                          y r5   )uiregister_paletter   r   console_palettepaletteconsole_palette_transparentclear)r0   r_   s     r2   set_palettezConsoleMaster.set_palette   sS      dll::;CC88	

 	r3   c                 <    | j                   j                  |g       y r5   )ra   process_input)r0   keys     r2   
inject_keyzConsoleMaster.inject_key   s    		&r3   c           	        K   t         j                  j                         s0t        dt         j                         t        j
                  d       t        j                  j                         }t        j                  dk7  r3|r1d|vr-t        dt        j                  dt         j                         t        j                  d       t        j                  j                  | j                         t!        j"                         | _        | j$                  j'                  d	       | j)                  d        | j*                  j-                  | j(                  d
dg       t/        j0                         }t3        |t5        t.        dt7                           rt9        |      }t        j:                  t        j<                  d      t        j>                  |      | j$                  | j*                  j@                        | _!        t!        jD                  |       | _        | j                   | jB                  _#        | j                   jI                          | jB                  jK                          tL        |           d {    y 7 w)NznError: mitmproxy's console interface requires a tty. Please run mitmproxy in an interactive shell environment.)filer<   rp   utfz3mitmproxy expects a UTF-8 console environment, not zC. Set your LANG environment variable to something like en_US.UTF-8.utf8   r   r   ProactorEventLoopx)ra   )
event_loopscreenhandle_mouse)(sysstdoutisattyprintstderrexiturwiddetected_encodinglowerrs   r9   set_encodingr   call_inr"   rd   r   Screenr   set_terminal_propertiesr   r   	subscribeasyncioget_running_loopr   getattrtupler   MainLoop	SolidFillAsyncioEventLoopconsole_mousera   Windowwidgetrefreshrg   r   running)r0   r   ra   r1   s      r2   r   zConsoleMaster.running   s    zz  "LZZ
 HHQK!3399;77d?0UBS5SEeF]F]E` aT UZZ 	6" 0 01--/'',02OP	
 '')dGG-@%'JK-d3DNNOOC --487733	
	 mmD);;				gos   I=J JJc                 r   K   | j                   j                          t        |           d {    y 7 wr5   )ra   rf   r   done)r0   r1   s    r2   r   zConsoleMaster.done   s$     		glns   ,757c                 Z    | j                   sJ  | j                   j                  |fi | y r5   )r   set_overlay)r0   r   kwargss      r2   overlayzConsoleMaster.overlay   s'    {{{1&1r3   c                 V    | j                   sJ | j                   j                  |       y r5   )r   push)r0   r9   s     r2   switch_viewzConsoleMaster.switch_view   s     {{{r3   c                 0    |dk7  r| j                          y y )NrH   )shutdown)r0   as     r2   rM   zConsoleMaster.quit  s    8MMO r3   )r   N)__name__
__module____qualname__r   Optionsr   r6   r(   rO   r   LogEntryr#   rd   
contextlibcontextmanagerrj   rA   rz   r   r   r   r   r   r   r   r   r   r   rM   __classcell__)r1   s   @r2   r   r   %   s    1W__ 1 12'@
 , $ $C ! ! q .!F', \2r3   r   )*r   r   r   os.pathrs   r   rv   r   r   r   r   r   typingr   r   tornado.platform.asyncior   r   r   r   r   r   mitmproxy.addonsr	   r
   r   r   r   mitmproxy.tools.consoler   r   r   r   r   r   mitmproxy.utilsr   rA   r   r   Masterr   r^   r3   r2   <module>r     s            
     ?     ' ' & % ! 1 / * , + * $Ce_FMM _r3   