
    @OOf
                     l    d dl Z d dlmZ  G d de j                        Z G d de j
                        Zy)    N)signalsc                       e Zd Zd Zy)	Highlightc                     t         j                  j                  | t        j                  |j                        d       || _        y )N
focusfield)urwidAttrMap__init__Texttextbackup)selfts     c/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/searchable.pyr
   zHighlight.__init__   s3    JJqvv	

     N)__name__
__module____qualname__r
    r   r   r   r      s    r   r   c                   H     e Zd Zd Zdef fdZd Zd Zd Zde	fdZ
 xZS )	
Searchablec                     t        j                  |      | _        t         j                  j	                  | | j                         d| _        d | _        d | _        d | _        y )Nr   )	r   SimpleFocusListWalkerwalkerListBoxr
   search_offsetcurrent_highlightsearch_termlast_search)r   contentss     r   r
   zSearchable.__init__   sL    11(;tT[[1!%r   keyc                    |dk(  r-t         j                  j                  dd| j                         y |dk(  r| j	                  d       y |dk(  r| j	                  d       y |d	k(  r,| j                  d
       | j                  j                          y |dk(  rB| j                  t        | j                        dz
         | j                  j                          y t        | )  ||      S )N/z
Search for )promptr   callbacknFNTm_startr   m_end   )r   status_promptsend
set_search	find_next	set_focusr   	_modifiedlensuperkeypress)r   sizer!   	__class__s      r   r4   zSearchable.keypress   s    #:!!&&#"t '  CZNN5!CZNN4 INN1KK!!#G^NN3t{{+a/0KK!!#7#D#..r   c                 J    || _         |xs d | _        | j                  d       y )NF)r   r   r/   )r   r   s     r   r.   zSearchable.set_search+   s"    <4ur   c                     | j                   <| j                  | j                      }|j                  | j                  | j                   <   |d | _         y t        | j                  |         | j                  |<   || _         y N)r   bodyr   r   )r   offsetolds      r   set_highlightzSearchable.set_highlight0   sk    !!-))D223C03

DIId,,->%)D" )$))F*; <DIIf%+D"r   c                     t        |t        j                        r|j                  S t        |t              r|j
                  j                  S y r9   )
isinstancer   r   r   r   r   )r   ws     r   get_textzSearchable.get_text:   s4    a$66M9%88== r   	backwardsc                    | j                   s0| j                  r| j                  | _         n| j                  d        y |r$t        t	        | j
                        dz
  dd      }n"t        dt	        | j
                        dz         }|D ]  }| j                  |z   t	        | j
                        z  }| j
                  |   }| j                  |      }|sK| j                   |v sZ| j                  |       | j                  |d       | j
                  j                           y  | j                  d        t        j                  j                  dd       y )Nr+   above)coming_fromzSearch not found.)messageexpire)r   r   r=   ranger2   r:   focus_positionrA   r0   r1   r   status_messager-   )r   rB   rngioffr@   txts          r   r/   zSearchable.find_nextB   s   #'#3#3 ""4(DII*B3C3tyy>A-.C 	OA&&*c$))n<C		#A--"Ct''3.""3's8		##%	O t$""''0CA'Nr   )r   r   r   r
   strr4   r.   r=   rA   boolr/   __classcell__)r6   s   @r   r   r      s1     /# /$
,O4 Or   r   )r   mitmproxy.tools.consoler   r	   r   r   r   r   r   r   <module>rT      s/     + IO IOr   