
    @OOf9                         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eeef   Zd	eeef   d
ej                   defdZdededefdZ G d d      Zy)    N)	cookiejar)Optional)ctx)
exceptions)
flowfilter)http)cookiesattrsfreturnc                     |j                   j                  }d}d| v r| d   }d| v r| d   }||j                   j                  |fS )z/
    Returns a (domain, port, path) tuple.
    /domainpath)requesthostport)r
   r   r   r   s       ^/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/addons/stickycookie.pyckeyr      sL     YY^^FD5xV}AIINND))    abc                 ~    t        j                  | |      ryt        j                  | |j                  d            ryy)NT.F)r   domain_matchstrip)r   r   s     r   r   r      s3    a#			1773<	0r   c                   `    e Zd ZddZd Zd Zdej                  fdZdej                  fdZ	y)	StickyCookieNc                 N    t        j                  t              | _        d | _        y )N)collectionsdefaultdictdictjarflt)selfs    r   __init__zStickyCookie.__init__$   s     ##D) 	 /3r   c                 B    |j                  dt        t           d d       y )Nstickycookiez3Set sticky cookie filter. Matched against requests.)
add_optionr   str)r%   loaders     r   loadzStickyCookie.load*   s     SMA		
r   c                    d|v rVt         j                  j                  r4	 t        j                  t         j                  j                        | _        y d | _        y y # t        $ r$}t        j                  t        |            |d }~ww xY w)Nr(   )
r   optionsr(   r   parser$   
ValueErrorr   OptionsErrorr*   )r%   updatedes      r   	configurezStickyCookie.configure2   sr    W${{''A)//0H0HIDH   % " A$11#a&9q@As   2A 	B	%BB	flowc                    |j                   sJ | j                  r|j                   j                  j                  d      D ]  \  }\  }}t	        ||      }t        |j                  j                  |d         s9t        j                  |      rL| j                  |   j                  |d        | j                  |   r}| j                  j                  |d        || j                  |   |<    y y )NT)multir   )responser$   r	   itemsr   r   r   r   
is_expiredr#   pop)r%   r5   namevaluer
   dom_port_paths         r   r8   zStickyCookie.response<   s    }}}88(,(=(=(C(C$(C(O >$nue !%UD 1 1 1=3CD))%0/33D$?  $xx6 HHLL=8=/5> r   c                 <   | j                   rg }t        j                  | j                   |      r| j                  j	                         D ]  \  \  }}}}t        |j                  j                  |      |j                  j                  |k(  |j                  j                  j                  |      g}t        |      ss|j                  |j	                                 |r<d|j                  d<   t        j                  |      |j                  j                   d<   y y y )NTr(   cookie)r$   r   matchr#   r9   r   r   r   r   r   
startswithallextendmetadatar	   format_cookie_headerheaders)r%   r5   cookie_listr   r   r   crA   s           r   r   zStickyCookie.requestP   s    8813K$//3xx~~/? 6+(VT4!$T\\%6%6?))T1))44T:E
 5z#**177956 04n-181M1M2$$X.  r   )r   N)
__name__
__module____qualname__r&   r,   r4   r   HTTPFlowr8   r    r   r   r   r   #   s1    3
 >T]] >(DMM r   r   )r    r   r   typingr   	mitmproxyr   r   r   mitmproxy.net.httpr	   tupler*   intTOriginr"   rM   r   boolr   r   rN   r   r   <module>rV      sw             &
S#

*S#X 
*4== 
*W 
*C C D > >r   