idW5"ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZmZmZddlmZddlmZmZddlmZm Z dd l!m"Z"m#Z#m$Z$d Z%ee&d fZ'Gd d eZ(GddeZ)dS)N) defaultdict) BaseCookieMorsel SimpleCookie) DefaultDictDictIterableIteratorListMappingOptionalSetTupleUnioncast)URL)AbstractCookieJarClearCookiePredicate) is_ip_addressnext_whole_second) LooseCookiesPathLikeStrOrURL) CookieJarDummyCookieJar Morsel[str]c eZdZdZejdZejdZejdZejdej Z ejdZ e j j e jjZe j dZd d d d d d ededeeeed fdeejdd f fdZdedd fdZdedd fdZd/deedd fdZ de!dd fdZ"d0dZ#de$fdZ%d1dZ&de j de!de!d e!dd f d!Z'e(fd"e)d#e(dd fd$Z*e(fd%e(ded&fd'Z+e,de!d(e!defd)Z-e,d*e!d+e!defd,Z.e/d-e!dee j fd.Z0xZ1S)2rz/Implements cookie storage adhering to RFC 6265.z][\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*(?P[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)z(\d{1,2}):(\d{1,2}):(\d{1,2})z (\d{1,2})zG(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)z (\d{2,4})tzinfoiFTN)unsafe quote_cookietreat_as_secure_originloopr!r"r#r$returncpt|tt|_t |_||_||_|g}not|tr| g}nDt|tr#t| g}n d|D}||_ t|_i|_|j|_ |jdS#t($r|j|_YdSwxYw)Nr$cg|]L}t|tr!t|n|MS) isinstancestrrorigin).0urls F/opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/cookiejar.py z&CookieJar.__init__..QsT&&&&0S%9%9KC!!!szz||&&&)super__init__rr_cookiesset_host_only_cookies_unsafe _quote_cookier*rr,r+_treat_as_secure_originr_next_expiration _expirationsMAX_TIME _max_time timestamp OverflowErrorMAX_32BIT_TIME)selfr!r"r#r$ __class__s r/r3zCookieJar.__init__;sS d###IT J J  9< ) ! )%' " " . 4 4 &<&C&C&E&E%F " " . 4 4 &)*@&A&A&H&H&J&J%K " "&&1&&& "(>$ 1 3 3KM 1 N $ $ & & & & & 1 1 1!0DNNNN 1sDD54D5 file_pathctj|}|d5}tj|j|tjddddS#1swxYwYdS)Nwbmode)pathlibPathopenpickledumpr4HIGHEST_PROTOCOLrArCfs r/savezCookieJar.save_sL++ ^^^ & & C! K q&*A B B B C C C C C C C C C C C C C C C C C Cs&AA"%A"ctj|}|d5}tj||_ddddS#1swxYwYdS)NrbrF)rHrIrJrKloadr4rNs r/rSzCookieJar.loaddsL++ ^^^ & & +!"KNNDM + + + + + + + + + + + + + + + + + +sAAA predicatec|`t|_|j|j|jdSg}t jt jj }|j D]a\\}}}| D]D\}}|||f} | |jvr|j| |ks ||r| | Eb|D]^\}}}|j ||f|||f} | |jvr |j|||f=|j||f |d_t|j|j} | dt jdz|_dS#t&$r|j|_YdSwxYw)N)defaultr) microsecondrseconds)rr:r4clearr6r;datetimenowtimezoneutcitemsappenddiscardpopminvaluesr=replace timedeltar?) rArTto_delr\domainpathcookienamemorselkeynext_expirations r/rZzCookieJar.clearis)  $5$7$7D ! M   ! ! !  # ) ) + + +   # # % % % F##H$5$9::&*m&9&9&;&; ' ' "NVTF &  ' ' ftT*4,,,1B31G31N1NYv&&2OMM#&&&  '#) : : FD$  # + +VTN ; ; ;4&Cd'''%vtT&:; M64. ) - -dD 9 9 9 9d/6688$.QQQ 3$3$;$;%<%%"1---%.D ! ! ! 3 3 3$(ND ! ! ! ! 3s1GG*)G*rhc<fddS)Nc<|dS)Nrh)_is_domain_match)xrhrAs r/z(CookieJar.clear_domain..sT2261X;GGr1rZrArhs``r/ clear_domainzCookieJar.clear_domains) GGGGGHHHHHr1Iterator[Morsel[str]]c#K||jD]}|Ed{VdSN)_do_expirationr4rd)rAvals r/__iter__zCookieJar.__iter__sb ='')) $ $Czz|| # # # # # # # # $ $r1c4td|DS)Nc3K|]}dVdS)rNr))r-is r/ z$CookieJar.__len__..s"##1######r1)sumrAs r/__len__zCookieJar.__len__s##d######r1c2|ddS)NcdS)NFr))rrs r/rsz*CookieJar._do_expiration..sUr1rtrs r/rzzCookieJar._do_expirations ??#####r1whenrirkcTt|j||_||j|||f<dSry)rcr:r;)rArrhrirks r/_expire_cookiezCookieJar._expire_cookies3!$D$94 @ @2664.///r1cookies response_urlc|j}|jst|rdSt|tr|}|D]\}}t|t st}|||<||}|d}|drd}|d=|s%|#|j ||f|x}|d<| dr|dd}||d<|r| ||s|d}|r| dsD|j }| dsd}n d|d|dz}||d<|d} | r t| } t jt jjt!j| z} n#t*$r |j} YnwxYw|| |||nT#t0$rd|d<YnCwxYw|d } | r5|| } | r|| |||nd|d <||j||f|<|dS) zUpdate cookies.Nrh.rri/zmax-agerXexpires)raw_hostr7rr*r r_rrendswithr6add startswithrqrirfindintr[r\r]r^rfr?r=r ValueError _parse_dater4rz)rArrhostnamerkrjtmprhrimax_age delta_secondsmax_age_expirationr expire_times r/update_cookieszCookieJar.update_cookiess (|  h 7 7  F gw ' ' &mmooG#> 9> 9LD&ff-- #)5"D TH%Fs## %8$ 5h2'++Xt,<===,44)  %% *#)x   5 5fh G G &>D &ts33 &#(s++;DDa$**S//&9!::D!%vY'G / +$'LLM<-5->-B-B$-1..$.}EEE.F**)<<<-1^***<''(:FD$OOOO!+++(*F9%%%+!+/"&"2"27";";K"/++KtLLLL,.y)28DM64. )$ / / s75G:AG  G: GG:GG::H  H  request_url)BaseCookie[str]zSimpleCookie[str]c L|t|}|jrtn t }|jpd}t}t jt5| }dddn #1swxYwY|j dvo||j v}|D]}|j }|d}|s |j ||<|jst|r5||f|jvr||krGn|||s_||j|ds|r |drt)d||j t-} | |j |j |j| ||<|S)z8Returns this jar's cookies filtered by their attributes.rN)httpswssrhrisecurer)rzrr8rrr contextlibsuppressrr,schemer9rmvaluer7rr6rq_is_path_matchrirgetrr5 coded_value) rArfilteredrrequest_origin is_not_securerjrkrhmrsl_vals r/filter_cookieszCookieJar.filter_cookiess +&& "0 BLNNNjll '-2   , , 2 2(//11N 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2  &6 6 Cd&BB   & &F:DH%F !'< M($;$; ~!888X%%&**68<< &&{'7HH  !1 M6::fj&((+K+KLLH LLV\63E F F F%HTNNs7BBBrc||krdS||sdS|dt| }|dsdSt| S)z0Implements domain matching adhering to RFC 6265.TFNr)rlenr)rhr non_matchings r/rqzCookieJar._is_domain_matchsq v  4  (( 53v;;,/ $$S)) 5 ****r1req_path cookie_pathc|dsd}||krdS||sdS|drdS|t|d}|dS)z.Implements path matching adhering to RFC 6265.rTFN)rrr)rrrs r/rzCookieJar._is_path_match.s""3'' H { " "4"";// 5    $ $ 4K 0 0 2 23 &&s+++r1date_strc |sdSd}d}d}d}dx}x}}d} d} d} |j|D]} | d} |sA|j| }|r%d}d|D\}}}[|s@|j| }|r$d}t|} |s&|j| }|r d}|j } |s?|j | }|r#d}t|} d| cxkrdkr nn| d z } nd| cxkrd krnn| d z } d||||fvrdSd | cxkrd ksndS| dks|dks |dks|dkrdStj | | | |||tj j S)z4Implements date string parsing adhering to RFC 6265.NFrtokenTc34K|]}t|VdSry)r)r-ss r/rz(CookieJar._parse_date..Ys(+P+PqCFF+P+P+P+P+P+Pr1FcilEiriA;r)DATE_TOKENS_REfinditergroupDATE_HMS_TIME_REmatchgroupsDATE_DAY_OF_MONTH_REr DATE_MONTH_RE lastindex DATE_YEAR_REr[r]r^)clsr found_time found_day found_month found_yearhourminuteseconddaymonthyear token_matchr time_match day_match month_match year_matchs r/rzCookieJar._parse_dateAsc 4    !"""v-66x@@ 3 3K%%g..E  177>> !%J+P+PJN "rz"BCC%2:l33BJT M 2:l++L $,,H4E4I,JJH&77 BBN !HL48 "1"1"1"1 "1 !&hX&D E "1 w01 "1 "1"1"1"1"1"1HChC4CCCC +h+4++++ 33x(<=33333BI3I4IIII$$$$ $$$$$$$$$7%7/27:=7EH7 7777 ILKKlK#KRVKKKK\"%111 5 61111f + + + + + +\ +,,3,4,,,\,$? 3? 8H4E+F? ? ? [? ? ? ? ? r1rceZdZdZdddeejddffdZddZde fd Z dd ee ddfd Z d e ddfd ZefdededdfdZdeddfdZxZS)rzxImplements a dummy cookie storage. It can be used with the ClientSession when no cookie processing is needed. Nr'r$r%cLt|dS)Nr')r2r3)rAr$rBs r/r3zDummyCookieJar.__init__s$ d#####r1rwc# KdSryr)rs r/r|zDummyCookieJar.__iter__s  r1cdS)Nrr)rs r/rzDummyCookieJar.__len__sqr1rTcdSryr))rArTs r/rZzDummyCookieJar.clear r1rhcdSryr)rus r/rvzDummyCookieJar.clear_domainrr1rrcdSryr))rArrs r/rzDummyCookieJar.update_cookiesrr1rrctSry)r)rArs r/rzDummyCookieJar.filter_cookiess ~~r1rry)rrrrr rrr3r|rrrrZr+rvrrrrrrs@r/rrsK GK$$$)B C$t$$$$$$  x(<=      3 4    IL  l # RV    #2Cr1r)*rrr[osrHrKr collectionsr http.cookiesrrrtypingrrr r r r r rrrryarlrabcrrhelpersrrtypedefsrrr__all__r+ CookieItemrrr)r1r/rs  ######9999999999                          88888888555555556666666666 )3 % & ] ] ] ] ] !] ] ] @ &r1