
    @OOfg                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  G d de j                        Z G d d	ej                  ej                        Zy)
    N)
flowfilter)common)layoutwidget)tabsc                   (     e Zd Z fdZ fdZ xZS )CListBoxc                     t        |      | _        |d d  t        j                  dg      gdz  z   }t        |   |       y )N
   )lenlengthurwidTextsuper__init__)selfcontents	__class__s     ]/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/help.pyr   zCListBox.__init__
   s<    (mA;%**dV"4!5!99"    c                     |dk(  r| j                  | j                  dz
         y |dk(  r| j                  d       y t        |   ||      S )Nm_end   m_startr   )	set_focusr   r   keypress)r   sizekeyr   s      r   r   zCListBox.keypress   sD    '>NN4;;?+INN17#D#..r   )__name__
__module____qualname__r   r   __classcell__r   s   @r   r   r   	   s    #
/ /r   r   c                   J     e Zd ZdZdZ fdZd Zd Zd Zd Z	d Z
d	 Z xZS )
HelpViewHelphelpc                     || _         d| _        t        |   | j                  | j
                  g| j                  | j                  gg       y )N )masterhelpctxr   r   keybindings_titlekeybindingsfiltexp_titlefiltexp)r   r*   r   s     r   r   zHelpView.__init__   sI    '')9)9:##T\\2	
r   c                      y)NzKey Bindings r   s    r   r,   zHelpView.keybindings_title&   s    r   c                     g }|D ]J  }|j                   }|j                   dk(  rd}|j                  ||j                  xs |j                  f       L t	        j
                  |      S )N space)r   appendr'   commandr   format_keyvals)r   bindskvsbks        r   format_keyszHelpView.format_keys)   s`     	1AAuu|JJ166.QYY/0		1
 $$S))r   c                    t        j                  dg      g}|j                  | j                  | j                  j
                  j                  d                   |j                  t        j                  ddg             | j                  rM|j                  | j                  | j                  j
                  j                  | j                                     |j                  t        j                  ddg             |j                  | j                  | j                  j
                  j                  d                   t        |      S )N)titlezCommon Keybindings	commonkeyr
   )r?   zKeybindings for this view)r?   zGlobal Keybindingsglobal)
r   r   extendr=   r*   keymaplistr6   r+   r   )r   texts     r   r-   zHelpView.keybindings2   s    

;<=>D$$T[[%7%7%<%<[%IJKEJJ&LMNO<<KK((););)@)@)NOPJJ3	
 	D$$T[[%7%7%<%<X%FGH~r   c                      y)NzFilter Expressionsr1   r2   s    r   r.   zHelpView.filtexp_titleH   s    #r   c                 $   g }|j                  t        j                  t        j                  d             |j                  t        j                  g d             g d}|j                  t        j                  |d             t        |      S )N   )indent)r
   )rE   z    Regexes are Python-style.
)rE   z0    Regexes can be specified as quoted strings.
)rE   zR    Header matching (~h, ~hq, ~hs) is against a string of the form "name: value".
)rE   zA    Expressions with no operators are regex matches against URL.
)rE   z"    Default binary operator is &.
)headz
    Examples:
))zgoogle\.comzUrl containing \"google.com)z
~q ~b testz%Requests where body contains \"test\")z!(~q & ~t \"text/html\")z4Anything but requests with a text/html content type.)	rB   r   r8   r   r'   r6   r   r   r   )r   rE   exampless      r   r/   zHelpView.filtexpK   sm    F))*//!DEJJ	
&
 	F))(1=>~r   c                 F    |j                   | _        | j                          y)zD
        We are just about to push a window onto the stack.
        N)keyctxr+   show)r   prevs     r   layout_pushedzHelpView.layout_pushedl   s     {{		r   )r   r    r!   r?   rM   r   r,   r=   r-   r.   r/   rP   r"   r#   s   @r   r%   r%      s1    EF
*,$Br   r%   )r   	mitmproxyr   mitmproxy.tools.consoler   r   r   ListBoxr   TabsLayoutWidgetr%   r1   r   r   <module>rV      s>       * 0 (/u}} /Ytyy,33 Yr   