
    @OOfR0                        d dl mZ d dlmZ d dlm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 e	 	 	 	 	 	 dd       Z G d dej(                        Z G d dej(                        Zy)    )annotations)Callable)	lru_cacheN)commandexecutor)common)flowlist)	quickhelp)signals)	commander)humanc                   t        | t              r| \  }}n,t        | t              r| }d}nt        dt	        |              d}d}|j                  d      }|d   }t        |      dkD  rt        |      t        |      z   }nt        |      }||kD  r-t        d|t        |      z
  t        |      z
        }	|d|	 |z   }nt        |      dk(  rd}||fd	|fgS )
zN
    Shorten message so that it fits into a single line in the statusbar.
     zUnexpected message type: u   …z(more in eventlog)
r      Nwarn)
isinstancetuplestrAssertionErrortypesplitlenmax)
msg	max_width	disp_attrmsg_textmsg_endprompt	msg_lines
first_lineline_lengthshortening_indexs
             b/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/statusbar.pyshorten_messager%      s     #u!	8	C		8cDEEG!Ft$I1J
9~*oF3*oYq)c&k"9CL"HI 1!12W<
y>QF
#ff%566    c                       e Zd Zd fdZdddZ	 d	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 ddZdddZddZ	 	 	 	 	 	 	 	 ddZ	ddZ
d	 Zdd
ZddZddZ xZS )	ActionBarc                   || _         t        j                  t        j                  d            | _        t        j                  t        j                  d            | _        t        |   t        j                  | j                  | j
                  g             | j                          t        j                  j                  | j                         t        j                  j                  | j                         t        j                   j                  | j"                         t        j$                  j                  | j&                         t        j(                  j                  | j*                         |j,                  j.                  j0                  j                  | j*                         |j,                  j2                  j                  | j*                         d | _        d | _        y Nr   )masterurwid
WidgetWrapTexttopbottomsuper__init__Pileshow_quickhelpr
   status_messageconnectsig_messagestatus_prompt
sig_promptstatus_prompt_onekeysig_prompt_onekeystatus_prompt_commandsig_prompt_commandwindow_refresh
sig_updateviewfocus
sig_changesig_view_update	promptingonekeyselfr+   	__class__s     r$   r2   zActionBar.__init__6   s7   ##EJJrN3&&uzz"~6TXXt{{$;<=&&t'7'78%%doo6$$,,T-C-CD%%--d.E.EF&&t7$$,,T__=##++DOO<7;'+r&   c                    | j                   s|-|| j                  j                  j                  j                  k(  r| j                          y y N)rD   r+   r@   rA   flowr4   )rG   rK   s     r$   r?   zActionBar.sig_updateH   s<    ~~$,$$++:J:J:P:P:U:U2U! 3Vr&   c                l     j                   ry  j                  j                  j                         \  }}t	        j
                  t        ||             j                  _        t	        j
                  d       j                  _        |r( fd}t        j                  j                  ||       y y )Nr   c                 Z     j                   j                  k(  r j                          y y rJ   )r/   _wr4   )rG   ws   r$   cbz!ActionBar.sig_message.<locals>.cbW   s$    #'') $r&   secondscallback)rD   r+   uiget_cols_rowsr,   r.   r%   r/   rN   r0   r
   call_insend)rG   messageexpirecols_rP   rO   s   `     @r$   r7   zActionBar.sig_messageL   s     >>++....0aJJw56B* OO  " = r&   c                   t         j                  j                  d       t        j                  |j                          d|xs d      | j                  _        t        j                  d      | j                  _        || _
        y )Nfootersectionz: r   )r
   rA   rW   r,   Editstripr/   rN   r.   r0   rD   )rG   r   textrS   s       r$   r9   zActionBar.sig_prompt]   s[     	8,jjFLLN#32!6
CB!r&   c                Z   t         j                  j                  d       t        j                  | j
                  |      | j                  _        |%|| j                  j                  j                  _	        t        j                  d      | j                  _        | j                  | _        y )Nr]   r^   r   )r
   rA   rW   r   CommandEditr+   r/   rN   cbufcursorr,   r.   r0   execute_commandrD   )rG   partialrf   s      r$   r=   zActionBar.sig_prompt_commande   su    8,++KK
 &,DHHKK#B--r&   c                    |j                         r&| j                  j                  j                  d|       t	        j
                  | j                        } ||       y )Nzcommands.history.add)ra   r+   commandscallr   CommandExecutor)rG   txtexecutes      r$   rg   zActionBar.execute_commandp   sA    99;KK  %%&<cB!11$++>r&   c                0   t         j                  j                  d       |dg}g }t        |      D ]S  \  }}|j	                  t        j                  |d   |d                |t        |      dz
  k  sC|j                  d       U |j	                  |       |j                  d       |D ch c]  }|d   	 c}| _	        t        j                  |d      | j                  _        t        j                  d      | j                  _        || _        y	c c}w )
zo
        Keys are a set of (word, key) tuples. The appropriate key in the
        word is highlighted.
        r]   r^   z (r   r   ,z)? r   N)r
   rA   rW   	enumerateextendr   highlight_keyr   appendrE   r,   r`   r/   rN   r.   r0   rD   )rG   r   keysrS   partsmkupies           r$   r;   zActionBar.sig_prompt_onekeyv   s     	8,dO 	!DAqKK,,QqT1Q4893t9q= C 	! 	TU%)*qt*jj+B! +s   .Dc                     yNT rG   s    r$   
selectablezActionBar.selectable       r&   c                   | j                   r|dk(  r| j                          y | j                  r7|dk(  r| j                          y || j                  v r| j                  |       y y |dk(  r6| j                  j
                  j                         }| j                  |       y t        j                  |      r'| j                  j
                  j                  ||       y |S y )Nescenter)
rD   prompt_donerE   prompt_executer/   rN   get_edit_textr   is_keypresskeypress)rG   sizekrb   s       r$   r   zActionBar.keypress   s    >>Ez  "<$$&$++%''* &gxx{{002##D)%%a(HHKK((q1H r&   c                   | j                   j                  x}rB|j                         }t        |j	                               }t        |j                        dk(  }nt        j                  }d}| j                   j                  j                  j                  }t        j                  |||      }|j                  | j                   j                        \  | j                   _        | j$                  _        y )Nr   T)r+   windowfocus_stackr   
top_widgetr   stackr   FlowListBoxr@   rA   rK   r	   make	make_rowskeymapr/   rN   r0   )rG   rO   sfocused_widgetis_top_widgetfocused_flowqhs          r$   r4   zActionBar.show_quickhelp   s    """1"A!!,,.1NLA-M%11N M{{''--22^^NL-H&(ll4;;3E3E&F#T[[^r&   c                    d | _         d | _        | j                          t        j                  j                  d       y )Nbodyr^   )rD   rE   r4   r
   rA   rW   r}   s    r$   r   zActionBar.prompt_done   s1    6*r&   c                    | j                   }|J | j                           ||      }|r"t        j                  j	                  |d       y y )Nr   )rX   rY   )rD   r   r
   r5   rW   )rG   rm   rS   r   s       r$   r   zActionBar.prompt_execute   sM    >>###sm""''A'> r&   r+   z,mitmproxy.tools.console.master.ConsoleMasterreturnNonerJ   r   r   )r   )rX   tuple[str, str] | strrY   
int | Noner   r   )r   r   rb   z
str | NonerS   Callable[[str], None]r   r   )r   N)rh   r   rf   r   r   r   )rm   r   r   r   )r   r   ru   list[tuple[str, str]]rS   r   r   r   r   bool)__name__
__module____qualname__r2   r?   r7   r9   r=   rg   r;   r~   r   r4   r   r   __classcell__rH   s   @r$   r(   r(   5   s    ,$"
 DE>,>6@>	>"""!+"7L"	"	.""!6"BW"	"*$
G+?r&   r(   c                  V     e Zd ZdZdZd
 fdZddZddZd ZddZ	ddZ
dd	Z xZS )	StatusBarg      ?r   c                   || _         t        j                  t        j                  d            | _        t        | j                         | _        t        | !  t        j                  | j                  | j                  g             t        j                  j                  | j                         t        j                  j                  | j                         |j                  j                   j                  | j                         |j"                  j$                  j&                  j                  | j                         |j"                  j(                  j                  | j                         | j+                          y r*   )r+   r,   r-   r.   ibr(   abr1   r2   r3   r
   flow_changer6   r?   update_settingsoptionschangedr@   rA   rB   sig_view_addrefreshrF   s     r$   r2   zStatusBar.__init__   s    ""5::b>2DKK(TWWdgg$678##DOO4''8&&t7$$,,T__=  ((9r&   c                    | j                          t        j                  j                  | j                  | j
                         y )NrQ   )redrawr
   rV   rW   REFRESHTIMEr   r}   s    r$   r   zStatusBar.refresh   s,    T%5%5Mr&   c                $    | j                          y rJ   )r   rG   argskwargss      r$   r?   zStatusBar.sig_update   s    r&   c                :     | j                   j                  |i |S rJ   )r   r   r   s      r$   r   zStatusBar.keypress   s    tww000r&   c                   g }| j                   j                  j                  d      }| j                   j                  j                  d      }t        | j                   j                  j
                        r3|j                  d       |j                  d       |j                  d       t        | j                   j                  j                        r;|j                  dt        | j                   j                  j                        z         |r6|j                  d       |j                  d       |j                  d|z         |r6|j                  d       |j                  d	       |j                  d|z         | j                   j                  j                  r^|j                  d       |j                  d
       |j                  dt        | j                   j                  j                        z         n}| j                   j                  j                  r]|j                  d       |j                  d       |j                  dt        | j                   j                  j                        z         | j                   j                  j                  r]|j                  d       |j                  d       |j                  dt        | j                   j                  j                        z         | j                   j                  j                  r|j                  d       | j                   j                  j                  s|j                  d       |j                  d       |j                  d| j                   j                  j                  z         | j                   j                  j                  rT|j                  d       |j                  d       |j                  d| j                   j                  j                  z         | j                   j                  j                  rT|j                  d       |j                  d       |j                  d| j                   j                  j                  z         | j                   j                  j                  rT|j                  d       |j                  d       |j                  d| j                   j                  j                  z         | j                   j                  j                   dk7  r2|j                  d| j                   j                  j                   z         | j                   j                  j#                  d      rT|j                  d       |j                  d       |j                  d| j                   j                  j$                  z         g }| j                   j                  j&                  r|j                  d       | j                   j                  j(                  r|j                  d       | j                   j                  j*                  r|j                  d       | j                   j                  j,                  s|j                  d       | j                   j                  j.                  s|j                  d       | j                   j                  j0                  r|j                  d       | j                   j                  j2                  r/|j                  | j                   j                  j2                         |r#|j                  dd j5                  |      z         | j                   j                  j6                  d!gk7  rt        | j                   j                  j6                        d"k(  r7|j                  d| j                   j                  j6                  d#    d$       n<|j                  d%t        | j                   j                  j6                         d$       | j                   j                  j8                  r;|j                  d&t        | j                   j                  j8                        z         | j                   j                  j:                  r2|j                  d'| j                   j                  j:                  z         |S )(Nzreplay.server.countzreplay.client.count[)heading_keyHzeaders]z[%d body modifications])r   	cplaybackz:%s])r   	splayback)r   Iz	gnore:%d])r   Azllow:%d])r   TzCP:%d]X)r   rx   )r   f)r   t)r   uautoz[contentview:%s]
view_order)r   o	anticacheanticompshowhost	norefreshzno-upstream-cert	followingz[%s]:regularr   r   ]z[modes:z[scripts:%s]z[W:%s])r+   rj   rk   r   r   modify_headersrt   modify_bodyignore_hostsallow_hosts	tcp_hosts	interceptintercept_activeview_filterstickycookie
stickyauthconsole_default_contentviewhas_changedr   r   r   r   server_replay_refreshupstream_certconsole_focus_followstream_large_bodiesjoinmodescriptssave_stream_file)rG   rsreplaycreplayoptss        r$   
get_statuszStatusBar.get_status   s   )+++&&++,AB++&&++,ABt{{""112HHSMHH)*HHYt{{""../HH.T[[5H5H5T5T1UUVHHSMHH12HHVg%&HHSMHH12HHVg%&;;++HHSMHH)*HH[3t{{':':'G'G#HHI[[  ,,HHSMHH)*HHZ#dkk&9&9&E&E"FFG;;((HHSMHH)*HHXDKK$7$7$A$A BBC;;((HHSM;;&&77HH)*HHVdkk11;;;<;;**HHSMHH)*HHVdkk11===>;;++HHSMHH)*HHVdkk11>>>?;;))HHSMHH)*HHVdkk11<<<=;;::fDHH"dkk&9&9&U&UV ;;**<8HHSMHH)*HHVdkk11<<<=;;((KK$;;''KK
#;;''KK
#{{""88KK${{""00KK*+;;33KK$;;22KK++??@HHVsxx~./;;##	{24;;&&++,11T[[0055a89;<73t{{':':'?'?#@"ACD;;&&HH^c$++*=*=*E*E&FFG;;//HHX 3 3 D DDEr&   c           	        | j                   j                  j                  d      }| j                   j                  j                  j
                  d}n-| j                   j                  j                  j
                  dz   }| j                   j                  j                  rt        j                  }nt        j                  }d}| j                   j                  j                  d      rd}d| d| d	| d
| dj                  d      fg}t        t        j                  d | j                   j                  j!                  d      j#                         D                    }|rddj%                  |       d}nd}|j'                  | j)                                t+        j,                  t+        j.                  t+        j0                  |      t+        j0                  |d      g      d      }|| j2                  _        y )Nzview.properties.lengthr   r   r   zview.properties.markedMheading z [/r      c              3  F   K   | ]  }t        j                  |        y wrJ   )r   format_address).0as     r$   	<genexpr>z#StatusBar.redraw.<locals>.<genexpr>E  s#       $$Q's   !proxyserverr   z, right)align)r+   rj   rn   r@   rA   indexr   view_order_reversedr   	SYMBOL_UPSYMBOL_DOWNljustlistdictfromkeysaddonsgetlisten_addrsr   rr   r   r,   AttrWrapColumnsr.   r   rN   )	rG   fcoffsetarrowmarkedr   r  	boundaddrstatuss	            r$   r   zStatusBar.redraw0  s   [[!!))*BC;;!!''/F[[%%++11A5F;;22$$E&&E;;''(@AF 5'6("VHAbT;AA"EF*
 #'MM ++//>KKM #
 DIIl34A6II	"#MMJJqMJJy8 
 
r&   c                     yr{   r|   r}   s    r$   r~   zStatusBar.selectableZ  r   r&   r   r   )r   zlist[tuple[str, str] | str]r   )r   r   r   r   keyctxr2   r   r?   r   r   r   r~   r   r   s   @r$   r   r      s4    KF
N1Yv(Tr&   r   )r   r   r   intr   r   )
__future__r   collections.abcr   	functoolsr   r,   mitmproxy.tools.console.master	mitmproxymitmproxy.tools.consoler   r   r   r	   r
   !mitmproxy.tools.console.commanderr   mitmproxy.utilsr   r%   r-   r(   r   r|   r&   r$   <module>r     s    " $   % 3 * , - + 7 ! 7	7+.77 7DC?   C?L`   `r&   