
    @OOf|                         d dl mZ d dlZd dlZd dlmZ d dlmZ  G d dej                        Z	 G d dej                        Z G d	 d
ej                  ej                        Zy)    )	lru_cacheN)common)layoutwidgetc                   *    e Zd Zd Zd Zd Zd Zd Zy)FlowItemc                     ||c| _         | _        | j                         }t        j                  j                  | |       y N)masterflowget_texturwid
WidgetWrap__init__)selfr
   r   ws       a/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/flowlist.pyr   zFlowItem.__init__   s3    !'TYMMO!!$*    c                    | j                   j                  j                         \  }}| j                   j                  j                  }|dk(  s
|dk(  r |dk  rt
        j                  j                  }nt
        j                  j                  }t        j                  | j                  || j                  | j                   j                  j                  j                  u | j                   j                  j                        S )Nlistdefaultd   )render_modefocused
hostheader)r
   uiget_cols_rowsoptionsconsole_flowlist_layoutr   
RenderModeLISTTABLEformat_flowr   viewfocusshowhost)r   cols_layoutr   s        r   r   zFlowItem.get_text   s    ++....0a$$<<V) 3s
 ++00K ++11K!!II#II!1!1!7!7!<!<<{{**33	
 	
r   c                      y)NT r   s    r   
selectablezFlowItem.selectable   s    r   c                 f    |dk(  r,|dk(  r&| j                   j                  j                  d       yy y )Nzmouse press   console.view.flow @focusT)r
   commandsexecute)r   sizeeventbuttoncolrowr$   s          r   mouse_eventzFlowItem.mouse_event"   s4    M!fkKK  (()CD '2!r   c                     |S r	   r*   r   r2   keys      r   keypresszFlowItem.keypress'   s    
r   N)__name__
__module____qualname__r   r   r,   r7   r;   r*   r   r   r   r   
   s    +


r   r   c                       e Zd ZU ded<   d ZddZd Zd Zd Z e	d	      d
e
deedz  e
dz  f   fd       Zd Zd Zy)FlowListWalker,mitmproxy.tools.console.master.ConsoleMasterr
   c                     || _         y r	   )r
   )r   r
   s     r   r   zFlowListWalker.__init__.   s	    r   c                 z    t        | j                  j                  j                               }|rt	        |      S |S r	   )ranger
   r#   
get_lengthreversed)r   reverserets      r   	positionszFlowListWalker.positions1   s3     DKK$$//12C= 
r   c                 X    | j                          | j                  j                          y r	   )	_modified_getcache_clearr+   s    r   view_changedzFlowListWalker.view_changed9   s    		r   c                 ,   | j                   j                  j                  j                  syt	        | j                   | j                   j                  j                  j                        }|| j                   j                  j                  j
                  fS )N)Nr   )r
   r#   r$   r   r   index)r   fs     r   	get_focuszFlowListWalker.get_focus=   se    {{%%**T[[$++"2"2"8"8"="=>$++""((....r   c                     | j                   j                  j                  d|z        r&|| j                   j                  j                  _        y y )Nzview.properties.inbounds %d)r
   r0   r1   r#   r$   rP   )r   rP   s     r   	set_focuszFlowListWalker.set_focusC   s>    ;;''(E(MN+0DKK""( Or   N)maxsizeposreturnc                     | j                   j                  j                  |      syt        | j                   | j                   j                  |         |fS )N)NN)r
   r#   inboundsr   r   rV   s     r   rL   zFlowListWalker._getG   sB    {{((-T[[%5%5c%:;S@@r   c                 *    | j                  |dz         S Nr.   rL   rZ   s     r   get_nextzFlowListWalker.get_nextM       yyq!!r   c                 *    | j                  |dz
        S r\   r]   rZ   s     r   get_prevzFlowListWalker.get_prevP   r_   r   )F)r<   r=   r>   __annotations__r   rI   rN   rR   rT   r   inttupler   rL   r^   ra   r*   r   r   r@   r@   +   sh    :: /1 tA AhosTz&A B A A
""r   r@   c                   <     e Zd ZdZdZd fdZd Zd ZddZ xZ	S )	FlowListBoxFlowsflowlistc                     || _         t        | 	  t        |             | j                   j                  j                  | j                  dg       y )Nr   )r
   superr   r@   r   	subscribeset_flowlist_layout)r   r
   	__class__s     r   r   zFlowListBox.__init__X   sC    FL/0%%$$'@&A	
r   c                 D   |dk(  r&| j                   j                  j                  d       nU|dk(  r&| j                   j                  j                  d       n*|dk(  r%| j                   j                  j                  d       t        j                  j                  | ||      S )Nm_startzview.focus.go 0m_endzview.focus.go -1m_selectr/   )r
   r0   r1   r   ListBoxr;   r9   s      r   r;   zFlowListBox.keypress_   s}    )KK  (():;G^KK  (();<JKK  (()CD}}%%dD#66r   c                 8    | j                   j                          y r	   )bodyrN   r+   s    r   rN   zFlowListBox.view_changedh   s    		 r   c                 L    | j                   j                  j                          y r	   )r
   r   clear)r   r'   s     r   rl   zFlowListBox.set_flowlist_layoutk   s    r   )r
   rA   rW   N)rW   N)
r<   r=   r>   titlekeyctxr   r;   rN   rl   __classcell__)rm   s   @r   rf   rf   T   s!    EF
7!r   rf   )	functoolsr   r   mitmproxy.tools.console.master	mitmproxymitmproxy.tools.consoler   r   r   r   
ListWalkerr@   rr   LayoutWidgetrf   r*   r   r   <module>r      sR      % * 0u B&"U%% &"R%--!:!: r   