
    j_/                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKJr  S SKJr  SSKJr  SSKJr  SS	KJr  S SKr " S
 S5      rSrSrSrS\R6                  4S jrSSSS.rS\S\S\4S jrS\S\4S jr S\!4S jr"S.S jr#S r$S r%S r&S/S jr'S  r(S! r)S" r*S#\S\!4S$ jr+S\S\4S% jr,S&\-S\!4S' jr.S0S( jr/  S1S) jr0S* r1S+ r2S, r3S- r4g)2    N)urljoin)Faker)requests)BeautifulSoup   )core)FwcimAmazon)	CseAmazonc                   $    \ rS rSr\S 5       rSrg)Log   c                 V    [         R                  " [        5      R                  U 5        g N)_logging	getLogger__name__debug)ms    :C:\xampp\htdocs\CheckFili\Apis\Gencookie\amazon\helpers.pyr   	Log.debug   s    $$X.44Q7     N)r   
__module____qualname____firstlineno__staticmethodr   __static_attributes__r   r   r   r   r      s    7 7r   r   aV  rwLCVK_8hcUgil9KQiN7RbtmcJV5Pt12CwbhZ1h9fvdbVRILCanjv2RNSW9l-Mq0fnRq6DLTLzX3J3TuVCZQ1wjfa-Ef1BDeXnVNaY4q0Vvl2e1e9UF-uwyK5mDyiftlPt5JcsRuFXU1dMSb5TwDiFV1UlGOc-db33zi1MlmrL5L7iyfqBQmlEoa5el5pFbmeK2wSOKBZtJja-dbVzde0jrpGlVhHDZOAlH7g8aTftqwHLVP27T9Pr0UJtaj9LIX-sg_K9-Pl7H2W9BJDTJLJi_EAAqBHTrRueejO3XbEuSGrsrphCk0ZlYqoLkobey-kubWTba5kzsWL-huF--tzQ 973900addb061fbe5bb4ea871e9d8161)z	gmail.comzoutlook.comreturnc                     [        S5      R                  5       n U S   R                  5       S   U S   R                  5       S   p![        R                  " XU SU 3S[
        R                  " SS5       [        R                  " 5       R                  S S	  3U [
        R                  " S
5       U [
        R                  " SS5       S[
        R                  " [        5       3S9$ )Nen_USnamer    Passi  i'     z._-i  @)f_namel_namer"   passwordmail)r   profilesplittypesSimpleNamespacerandomrandintuuiduuid4hexchoiceEMAIL_DOMAINS)pfirstlasts      r   generateFakeProfiler:      s    g AF)//#A&&	(9"(=4  5'4&(9tT23DJJL4D4DRa4H3IJwv}}U+,TF6>>!S3I2J!FMMZgLhKij r   zes-MX,es;q=0.9,en;q=0.8zen-US,en;q=0.9zen-CA,en;q=0.9,fr;q=0.8)MXUSCAphoneamazon_countryc                     [         R                  " SSU 5      n[        U5      S:X  a  UR                  S5      (       a  gUS:X  a  [        U5      S:X  a  g[        R
                  R                  X5      $ )Nz\D    1r<   r;   
   )resublen
startswithr   AMAZON_COUNTRY_CODE_MAPget)r>   r?   digitss      r   phone_country_coderL   '   s`    VVE2u%F
6{bV..s33#f+"3''++NKKr   domainc                 <    U R                  S5      (       a  U $ SU  3$ )N.)rH   )rM   s    r   waf_cookie_domainrP   0   s#    &&s++6=1VH=r   c                     [        U S0 5      =(       d    0 R                  SS5      n[        U[        5      (       a  UR	                  5       S;   a  g[        [        U SS5      =(       d    S5      $ )Nheadersx-amzn-waf-actionrA   	challengecaptchaTtext)getattrrJ   
isinstancestrlowerpage_needs_waf)respactions     r   response_needs_wafr_   4   sZ    dIr*0b556I2NF&#6<<>5M#M'$39r::r   c                    SSK Jn  [        U=(       d    S5      n	U(       a0  UR                  S5      =(       d    SR	                  5       n
U
S;   a  Sn	U	(       d2   U R                  U S3SS	9n[        U5      n	U	(       a  UR                  nU	(       d  U $ U(       a  U" S
5         U" U S3[        U5      US9R                  XPS9nUR                  S5      (       aj  U R                  R                  SUS   [        U5      SS9  [        R                  " [        5      R!                  SUR                  SS5       SU S35        U $ [        R                  " [        5      R#                  SUR                  S5       35         U $ ! [         a     GNf = f! [         a7  n[        R                  " [        5      R#                  SU 35         S nAU $ S nAff = f)Nr   )AwsWafrA   rS   rT   T/   timeoutzSolving WAF challenge...)
websiteURLproxy	userAgent)htmlsessionstatuszaws-waf-tokentoken)rM   pathzWAF token (	timeTaken?z	, domain=)zWAF failed: descriptionzWAF error: )wafra   r\   rJ   r[   r_   rW   	ExceptionnormalizeProxysolvecookiessetrP   r   r   r   infowarning)rj   base_urlrM   rg   ua	page_htmlpage_headers	on_statusra   needsr^   probewres                 r   ensure_waf_tokenr   ;   s   9?+E""#67=2DDF--E	KK8*AK;E&u-E!JJ	 ,-@"1~ '
 %Y%
0	 	
 66(OOG(0s    x(--bff[#67yJ N x(00<}@U?V1WX N5  		0  @8$,,{1#->??N@s1   1F $BF ;F 
FF
G,GGc           
         [         R                  " 5         [        R                  " [        R
                  5      n[        R                  " US9n[        R                  " [        R                  5      n[         R                  nU(       d  [        XS9  [         R                  nUS   nUS   nUS   n	[        [        SUS   5      5      n
U(       a  SU;   a  UOS	U 3nXS
.Ul        UR                  R                  0 SU_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&U
_S'U
_S[        U	5      _[        U	5      [        U5      [        U5      S(S)S*S+.E5        XE4$ ),N)impersonate)locationrh   screenwidthdprr&   deviceMemory://http://)httphttpsz
User-AgentAcceptztext/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7zAccept-Languagezen-USzAccept-Encodingzgzip, deflate, br, zstdUpgrade-Insecure-RequestsrC   Sec-Fetch-DestdocumentSec-Fetch-ModenavigateSec-Fetch-SitenoneSec-Fetch-User?1z	sec-ch-uaz("Chromium";v="120", "Not:A-Brand";v="99"zsec-ch-ua-mobilez?0zsec-ch-ua-platformz	"Windows"zsec-ch-ua-full-version-listz4"Chromium";v="120.0.0.0", "Not:A-Brand";v="99.0.0.0"zsec-ch-ua-platform-versionz"10.0"zdevice-memoryzsec-ch-device-memory4g5010)z
sec-ch-dprzviewport-widthzsec-ch-viewport-widthectrttdownlink)r	   reset_sessionr0   r5   r   IMPERSONATE_BROWSERSr   SessionUSER_AGENTS_session_profilerZ   minproxiesrR   update)baseUrlrM   rg   browsersUA	fpProfilescrvpr   devMempxs               r   buildSessionr   g   s   mmD556GW-A	t''	(B,,IW300	
H
C	WB
E
CQ	.123FunUGE7*;-	II b  \ 	7 	4	
 	$S 	* '7
 EUV\ _opt 	? BTUY \pq| 	&'] `|  ~F 	 "8 	s3x (+3xb'CGDd  5Lr   c                     U R                  SSU05      nU(       a  UR                  SS5      $ U R                  SSU05      nU(       a+  UR                  SSS9nU(       a  UR                  SS5      $ S $ g )	Ninputr"   valuerA   selectoptionT)selected)findrJ   )ri   r"   elselopts        r   getHiddenFieldr      sm    	7VTN	+B	"&&"%%
))Hvtn
-C
hhx$h/'*swww#44r   c                 H    U R                  XSU[        U5      SSSSSS.SS	9$ )
N!application/x-www-form-urlencodedr   r   same-originr   rC   zContent-TypeOriginRefererr   r   r   r   r   #   datarR   re   )postrZ   )r   urlr   refererorigins        r   postFormr      s?    66#;vZ]^eZf$
VcS+ 	   r   c           
      <    [        XUX#XVS9R                  5       S   $ )N)r   rh   referrerdynamicUrlsinlineHashes
emailValuecustomerName	metadata1)r	   generateMetadata)r   r   urlshashesr{   emailr"   s          r   r   r      s(    %& &r   c                    / n[         R                  " SU [         R                  5       Hr  n[         R                  " S5      [         R                  " S5      [         R                  " S5      4 H*  nUR	                  S UR                  U5       5       5        M,     Mt     UR                  5         / n[        U S5      R                  S5       H  nUR                  S5      (       a  M  UR                  (       d  M.  UR                  R                  5       nU(       d  MQ  S	nU H  nS
U-  [        U5      -   S-  nM     US:  a  US-  nUR                  U5        M     X4$ )Nz"<script[\s\S]*?>[\s\S]*?<\/script>z(load\.js\([\'"](https?://[^\'"]+)[\'"]\)z,ue\.uels\([\'"](https?://[^\'"]+\.js)[\'"]\)zDsrc=["\'](https://static\.siege-amazon\.com/[^\'"]+\.js\?v=\d+)["\']c              3   B   #    U  H  oR                  S 5      v   M     g7f)r   N)group).0r   s     r   	<genexpr>!extractScripts.<locals>.<genexpr>   s     ;Nq

Ns   html.parserscriptsrcr      l    l        l        )rE   findall
IGNORECASEcompileextendfinditerreverser   find_allrJ   stringstripordappend)htmlContentr   scr7   r   chchs           r   extractScriptsr      s   Djj>R]][**HI**LM**degA KK;AJJrN;;g \
 	LLNFK7@@Jvve}}		!AqB"q&3r7"2j!@Q!
?A$4Aa  K <r   c                 b   [        UR                  S5      n[        UR                  5      u  p[        [	        UR
                  5      [	        U5      U=(       d    UU=(       d    UXSUR                  S9n[        [        [        S5      nUR                  UR                  5      nUR                  S5      (       d  [        SUR                  SU5       35      e[        R                  SU
 S[!        U5       S	[!        US
   5       S35        [#        X S3[%        US5      S[%        US5      [%        US5      [%        US5      [%        US5      [%        US5      =(       d    S[%        US5      =(       d    S[%        US5      =(       d    U	X4R                  US
   US   USS.UR
                  U5      $ )Nr   )r   r"   zsi:md5rk   zCSE encrypt failed: rq   [z] md1=zc pwd=encryptedPasswordr   z/ap/registerappActionTokenREGISTERopenid.return_toprevRIDworkflowStateanti-csrftoken-a2zclaimCollectionLayoutTypeunifiedAuthClaimCollectionunifiedAuthTreatmentT2countryCodeencryptedPasswordCheckrA   )r   	appActionr   r   r   r   r   r   r   r   r   encryptedPwdencryptedPwdCheckr   encryptedPasswordExpected)r   rW   r   r   rZ   r   r"   r
   	CSE_JWK_N
CSE_KEY_IDencryptr*   rJ   RuntimeErrorr   r   rG   r   r   )r   pageref
phoneShortuserr   flowBasedynUrls	dynHashes	ccDefaultlabelphpuphhmdcseencs                    r   submitRegisterr     s~   	tyy-	0BTYY'GB	#dhh-S2=#BRTVosoxox	yB
Iz8
4C
++dmm
$C7781#''-2M1NOPPII%s2wivc#6I2J.K-LANOA<0(-=>Z*2/AB~^`bkOl'O<Tbceg{T|%3B8S%T%tXt .r3I J Rd%b-8EIYY/0sKcGdb
3 xx
 
r   c                 ,    U (       d  g SU ;   a  U $ SU  3$ )Nr   r   r   )rg   s    r   rt   rt      s    UN59'%(99r   ri   c                 B    [        [        R                  " SU 5      5      $ )Nz&src="https://[^"]+/challenge[^"]*\.js")boolrE   search)ri   s    r   r\   r\      s    		CTJKKr   c                    UR                  S5      n/ n[        5       n U R                  R                   H  n[	        USS5      =(       d    SR                  S5      nX&;   d  UR                  U5      (       d  ME  UR                  U4nXt;  d  MZ  UR                  U5        UR                  UR                   SUR                   35        M     U(       dG  U R                  R                  5        Vs/ s H"  o SU R                  R                  U5       3PM$     nnSR                  U5      $ ! [         a     Nkf = fs  snf )uE   Exporta cookies priorizando el dominio del país (ej. amazon.com.mx).rO   rM   NrA   =z; )lstriprw   rv   jarrX   endswithr"   addr   r   rs   keysrJ   join)	rj   rM   dompartsseenr   cdkeyks	            r   export_session_cookiesr)     s   
--
CE5D	$$A!Xt,2::3?ByBKK,,vvrl?HHSMLLAFF81QWWI!67 % :A//:N:N:PQ:PQ3a++A./0:PQ99U	   Rs$   AD- :D- ?D- 1)D=-
D:9D:excc                 `   ^ [        U 5      R                  5       m[        U4S jS 5       5      $ )Nc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   )r   r(  msgs     r   r   +_is_transient_curl_error.<locals>.<genexpr>   s       "ACx "s   )curltlssslzconnection resetz	timed outzconnection refusedzinvalid libraryopenssl)rZ   r[   any)r*  r-  s    @r   _is_transient_curl_errorr4     s/    
c(..
C  "   r   c           
         U nSn[        U5       H  n	 UR                  XS9U4s  $    Ue! [         a  n
U
nXS-
  :  d  [        U
5      (       d  e [        R
                  " [        5      R                  SU	S-    SU SU
 35        [        R                  " SU	S-   -  5        Ub.  U(       a!  U(       a  [        XVU5      u  p{ Sn
A
M   Sn
A
M   Sn
A
M   Sn
A
M  Sn
A
ff = f)u6   GET con reintentos; recrea sesión si falla TLS/proxy.Nrd   r   HTTP retry rb   :    )rangerJ   rs   r4  r   r   r   ry   timesleepr   )rj   r   re   retriesrg   rz   rM   r   last_errattemptr   _s               r   get_with_retryr@     s    AH>	=555.11 " N  		=HA+%-Ea-H-Hx(00gk]!G9Bqc: JJqGaK() X&#He<1 39X 		=s   +
CBCCc
           
         U n
S nSU[        U5      SSSSSS.n[        U5       H  n U
R                  XXS9U
4s  $    Ue! [         a  nUnXS	-
  :  d  [	        U5      (       d  e [
        R                  " [        5      R                  S
US	-    SU SU 35        [        R                  " SUS	-   -  5        Ub.  U(       a!  U	(       a  [        XU5      u  p S nAM   S nAM   S nAM   S nAM  S nAff = f)Nr   r   r   r   r   rC   r   r   r   r6  rb   r7  g      ?)rZ   r9  r   rs   r4  r   r   r   ry   r:  r;  r   )rj   r   r   r   r   re   r<  rg   rz   rM   r   r=  rR   r>  r   r?  s                   r   post_with_retryrB    s    AH;vZ]^eZf$
VcSG
 >	=66#'6KQNN " N  		=HA+%-Ea-H-Hx(00gk]!G9Bqc: JJsgk*+ X&#He<1 39X 		=s   A  
C2
BC--C2c                    ^  [        U 4S jS 5       5      =(       d     [        [        R                  " ST 5      5      =(       a    ST ;  =(       a    ST R	                  5       ;  $ )Nc              3   H   >#    U  H  oTR                  5       ;   v   M     g 7fr   r[   r   r(  ts     r   r   isOtp.<locals>.<genexpr>!  s!       )1QWWY )   ")zverify your identityzverification codezwe sent a codezconfirma tu identidadzconfirme su identidadzverify mobileu   enviamos un códigou   te enviamos un códigozname="code"data-external-idzse ha producido un error)r3  r  rE   r  r[   rG  s   `r   isOtprL     sg      )   - ryy+
,	~ 3EA2M	~ Smtut{t{t}R}	~r   c                 X    SU ;   =(       a    SU R                  5       ;   =(       d    SU ;   $ )NrJ  aamationzAuthentication requiredrE  rK  s    r   	isCaptcharO  '  s)    "b
aggi(?(aC\`aCabr   c                 .   ^  [        U 4S jS 5       5      $ )Nc              3   H   >#    U  H  oTR                  5       ;   v   M     g 7fr   rE  rF  s     r   r   isUnusual.<locals>.<genexpr>+  s     ~'}!AGGI~'}rI  )zunusual activityzaren't able to createzactividad inusualzno podemos crear)r3  rK  s   `r   	isUnusualrS  *  s    ~'}~~~r   c                 X    SU ;   =(       a    SU ;   =(       d    SU R                  5       ;   $ )Nr   r   registerrE  rK  s    r   	isRegFormrV  -  s&    q QjAo&Pqwwy9PQr   )NNN)rA   rA   )r   r8  NNN)<      NNN)5ossysr0   rE   r:  r.   r2   urllib.parser   fakerr   	curl_cffir   bs4r   rA   r   fwcimr	   r  r
   loggingr   r   r  r  r6   r/   r:   _LOCALErZ   rL   rP   r  r_   r   r   r   r   r   r   r  rt   r\   r)  rs   r4  r@  rB  rL  rO  rS  rV  r   r   r   <module>rb     s8   - - - -         8 8
 f	/
,U22  $

#Lc L3 L3 L>c >c >; ;)X"J&(,:
L L LC C ()  ( NO6:2~cRr   