
    +j,                         S SK r S SKrS SKrS SKrS SKJrJr  SSKJr  SSK	J
r
  S SKJr  S SKJrJr  S SKJr   " S	 S
5      r " S S\5      rg)    N)OptionalDict   )core)normalizeProxy)requests)	urlencodequote)BeautifulSoupc                   r   \ rS rSr% SSSSSS.SS	S
SSS.SSSSSS.S.r\\\\\4   4   \S'   S*S\S\S\SS4S jjrS\S\S\	R                  4S jrS+S\\   S\S\S\S\\   4
S  jjrS\S\\   4S! jrS\S"\S\	R                  4S# jrS\S\4S$ jrS\4S% jrS\\   4S& jrS\\   4S' jrS\4S( jrS)rg),AccountBuilder
   mainUSDzlc-mainen_US
amazon.com)codecurrencylclc_valuedomainacbcaCADzlc-acbcaen_CAz	amazon.caacbmxMXNzlc-acbmxes_MXzamazon.com.mxUSCAMXCOUNTRY_MAPNcookiecountryproxyreturnc                     [        U5      nU(       a  XDS.OS U l        U(       az  UR                  5       U R                  ;   a\  U R                  UR                  5          nUR                  5       U l        US   U l        Xl        U R                  XS   5      U l        g U R                  U5      nXl
        US   U l        US   U l        US   U l        U R                  U R                  U R
                  5      U l        g )N)httphttpsr   r#   country_code)r   
proxy_dictupperr"   countryCoder   r#   '_AccountBuilder__buildSessionForCountrysessionbuildCookieDatacookieNonBuildcreateCookieJarFromString)selfr#   r$   r%   pxtargetcookieBuildeds          ;C:\xampp\htdocs\CheckFili\Apis\Gencookie\amazon\metadata.py__init__AccountBuilder.__init__   s    E"7923tw}}$*:*::%%gmmo6F&}}D *DK K88AQRDL 008M"('1DK'1DK,^<D99$++t{{SDL    target_domainc                    [         R                  " [        R                  " [        R
                  5      U R                  S9nUR                  S5       Hu  nSU;  a  M  [        [        R                  UR                  SS5      5      u  pVUR                  R                  XVUSS9  US:w  d  MZ  UR                  R                  XVSSS9  Mw     SUl        UR                  R                  S	S
05        U$ )zHBuild session with cookies set on both amazon.com and the target domain.impersonateproxies;=r   /r   pathr   T
Connection
keep-alivecurlSessionrandomchoicer   IMPERSONATE_BROWSERSr+   splitmapstrstripcookiessetallow_redirectsheadersupdate)r3   r#   r;   r/   pairnamevalues          r7   __buildSessionForCountry'AccountBuilder.__buildSessionForCountry   s    ,,6==9R9R+S]a]l]lmLL%D$ciiC);<KDOOML,##D3#O & #'l;<r:   haystackstartendindexc                 x    Uc  g  UR                  U5      U   R                  U5      S   $ ! [         a     g f = f)Nr   )rM   	Exception)r3   r[   r\   r]   r^   s        r7   extractBetweenAccountBuilder.extractBetween-   sF    	>>%(/55c:1== 		s   %, 
99c                     [         R                  " SU[         R                  5      nU(       a  UR                  S5      R	                  5       $ S $ )Nz\b(main|acb[a-z]{2})\br   )researchIgrouplower)r3   r#   ms      r7   extractRegionCode AccountBuilder.extractRegionCode5   s7    II/>%&qwwqz!0D0r:   r   c                    [         R                  " [        R                  " [        R
                  5      U R                  S9nUR                  S5       HR  nSU;  a  M  [        [        R                  UR                  SS5      5      u  pVUR                  R                  XVUSS9  MT     SUl        UR                  R                  SS	05        U$ )
Nr=   r@   rA   r   rB   rC   TrE   rF   rG   )r3   r#   r   r/   rV   rW   rX   s          r7   r2   (AccountBuilder.createCookieJarFromString9   s    ,,6==9R9R+S]a]l]lmLL%D$ciiC);<KDOOFE	 &
 #'l;<r:   c                   ^ U R                  UR                  5       5      nU(       d  SSS.$ U R                  R                  5        Vs0 s H  o3S   U_M
     nnX$;  a	  SSU S3S.$ XB   mU R                  R                  5        Vs1 s H  o3S   iM	     snS1-  n/ nUR	                  S5       H  nUR                  5       nU(       d  M  S	U;  a  UR                  U5        M5  UR	                  S	S
5      u  pUR                  5       n[        U[        SS9 H3  n
UR                  SU
 35      (       d  M  US [        U
5      *  TS   -   n  O   US:X  a  TS   n	UTS   :X  a  TS   n	UR                  U S	U	 35        M     SR                  U5      nSUTS   [        U4S jU R                  R                  5        5       5      S.$ s  snf s  snf )NFz Region code not found in cookie.statusmessager   zUnsupported region code: .acbucr@   rA   r   T)keyreverse-z
i18n-prefsr   r   r   z; r   c              3   <   >#    U  H  u  pUT:X  d  M  Uv   M     g 7f)N ).0kvr$   s      r7   	<genexpr>1AccountBuilder.buildCookieData.<locals>.<genexpr>e   s      X/Gtq1PW</Gs   	)rp   r#   r   r*   )rj   rP   r"   valuesrM   appendsortedlenendswithjoinnextitems)r3   r#   region_coder{   country_map	all_codespartsrV   rW   rX   r   r$   s              @r7   r0   AccountBuilder.buildCookieDataD   s   ,,V\\^<#0RSS-1-=-=-D-D-FG-Fy!|-FG)#2KK=XY0Z[[*(,(8(8(?(?(AB(A1vY(ABgYN	LL%D::<D$T"**S!,KD::<Dyc4@==1TF,,#d),wv>D A |#
+wt}$
+LLD65'*+# &$ 5!h'  Xt/?/?/E/E/G XX	
 	
3 H Cs   	GGc           
         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.nUR                  U R                  R                  5       US	   5      nS
U R                   3SU R                   S3SSS.n U R                  R                  SU R                   S3USS9nUR
                  nU R                  USS5      nU R                  USSS5      nU R                  USS5      nU R                  USS5      n	U R                  USS5      n
U R                  USS5      nU R                  USS5      nU(       d  U(       d  gSSSU R                   3SU R                   S3S S!S"S#S$.n0 S%U=(       d    S&_S'S&_S(US)   _S*US+   _S,US-   _S.US/   _S0US1   _S2US3   _S4UR                  S5S&5      _S6US7   _S8U	=(       d    S&_S9S:_S;S<_S=S<_S>S?_S@S<_SASB_U
=(       d    S&U=(       d    S&U=(       d    S&U=(       d    S&U=(       d    S&SC.EnU R                  R                  SU R                   SD3UUSESF9nX l	        U R                  UR
                  SGS5      =(       dA    U R                  UR
                  SGS5      =(       d    U R                  UR
                  SHS5      nU(       a  UU l
        gIU R                  5       U l
        UR                  SJ:H  $ ! [         a     gf = f)KNAFz
Ahmad Wali
0700123456zStreet 1 Wazir Akbar KhanKabul1001)r-   fullNamephoneline1citystate
postalCoder   r   zwww.https://www.z/a/addresses?ref_=ya_d_c_addroMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.361536)hostrefererz
user-agentzviewport-widthz//a/addresses/add?ref=ya_address_book_add_button   )urlrT   timeoutFz6name="address-ui-widgets-form-load-start-time" value=""z=AddView&hostPageRID=&r   z9type="hidden" name="address-ui-widgets-csrfToken" value="zQtype="hidden" name="address-ui-widgets-previous-address-form-state-token" value="z"customerID":"z?name="address-ui-widgets-address-wizard-interaction-id" value="z&type='hidden' name='csrfToken' value=''z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.81documentnavigatezsame-origin)
User-AgentAcceptOriginRefererzUpgrade-Insecure-RequestszSec-Fetch-DestzSec-Fetch-ModezSec-Fetch-Site	csrfToken 	addressIDzaddress-ui-widgets-countryCoder-   z'address-ui-widgets-enterAddressFullNamer   z$address-ui-widgets-enterAddressLine1r   z)address-ui-widgets-enterAddressPostalCoder   z,address-ui-widgets-enterAddressStateOrRegionr   z#address-ui-widgets-enterAddressCityr   z/address-ui-widgets-enterAddressDistrictOrCountydistrictz*address-ui-widgets-enterAddressPhoneNumberr   z4address-ui-widgets-previous-address-form-state-tokenz(address-ui-widgets-addressFormButtonTextsavez)address-ui-widgets-addressFormHideHeadingtruez'address-ui-widgets-enableAddressDetailsz(address-ui-widgets-returnLegacyAddressIDfalsez-address-ui-widgets-enableDeliveryInstructionszaddress-ui-widgets-clientNameYourAccountAddressBook)z(address-ui-widgets-obfuscated-customerIdzaddress-ui-widgets-csrfTokenz'address-ui-widgets-form-load-start-timez1address-ui-widgets-clickstream-related-request-idz0address-ui-widgets-address-wizard-interaction-idz-/a/addresses/add?ref=ya_address_book_add_post   )rT   datar   
addressId="addressId":"T   )getr-   r,   r   r/   textr`   ra   postcountryData
_addressId%_AccountBuilder__getAddressIdFromBookstatus_code)r3   COUNTRY_DATAr   headers1reqrequest1
start_time
request_id
csrf_tokenaddress_jwtcustomer_idinteraction_idcsrf_token_addressheaders3payload3respaddr_ids                    r7   addBillingAddress AccountBuilder.addBillingAddressh   s   "&L<b}  HO  Za  qw  x"&L<b}  HO  Za  qw  x"&L<b}  HO  Za  qw  x

  0 0 6 6 8,t:LM4;;-(%dkk]2OP L$	
	,,"""4;;-/^_  # C
 xxH ((3kmpq
((3JCQRS
((3npst
))(  5H  JM  N))(4DcJ,,X7xz}~!00;cehi"4 LW$T[[M2%dkk]2ab),((+	

+1r

 -d=.A
 6tJ7G	

 3DM
 8l9K
 ;DM
 24<
 >txx
TV?W
 9$w-
 CKDUSU
 7
 8
 6v
 7
  <V!
" ,-E#
$ 9D8Ir,6,<"7A7GRAKAQr@N@TRT-
0 ||  4;;-'TU	 ! 
   		<= D""499lC@D""499osC 	
 %DO5573&&E  		s   /5K 
KKc                     SS0nU R                   R                  SU R                   S3USS9nU R                  UR                  SS5      nU(       a  U$ U R                  UR                  S	S
5      nU(       a  U$ U R                  UR                  SS
5      nU(       a  U$ U R                  UR                  SS5      $ ! [
         a     g f = f)Nr   r   r   z/a/addressesr   )rT   r   zdata-addressid="r   r   r   z
addressID=r   )r/   r   r   ra   r   r`   )r3   rT   r   r   s       r7   __getAddressIdFromBook%AccountBuilder.__getAddressIdFromBook   s    	#  &W  XG<<##l4;;-|$LV]gi#jD))$))5GMG))$))\3GG))$))\3GG&&tyy/3GG 		s$   AB> %B> ;%B> !B> >
C
Cc                 ~    [        U S5      (       a  U R                  (       a  U R                  $ U R                  5       $ )Nr   )hasattrr   r   )r3   s    r7   getBillingAddressId"AccountBuilder.getBillingAddressId   s.    4&&4????"**,,r:   c                     U R                  5       nU(       d  SSS.$ U R                  5       nU(       d  U R                  5       nU(       a  SSU R                  US.$ SSS.$ )NFzFailed Adding Billing Addressro   TzBilling Address Added)rp   rq   r   	addressId)r   r   r   )r3   addedr   s      r7   handleBillingAddress#AccountBuilder.handleBillingAddress   se    &&(#0OPP,,.	002I"/FPTP`P`oxyy,KLLr:   )r   r#   r1   r-   r   r   r+   r/   )NN)r   )__name__
__module____qualname____firstlineno__r"   r   rO   __annotations__r8   rH   rI   r.   r   intra   rj   r2   dictr0   boolr   r   r   r   __static_attributes__rx   r:   r7   r   r   
   s   =CQV^gu|  IU  5V  gn  |A  IS  ah  t  ^@  QX  fk  s}  KR  ^m  Hn  .oKc4S>)*  oTs TS T Tt T"s 3 4<< x} S s SV _ghk_l 1 1 1	 	S 	T\\ 	"
c "
d "
HW'4 W'r "-Xc] -
	Md 	Mr:   r   c                       \ rS rSrSrg)AmazonRegisterError   rx   N)r   r   r   r   r   rx   r:   r7   r   r      s    r:   r   )rJ   rd   stringjsontypingr   r   r   r   helpersr   	curl_cffir   rH   urllib.parser	   r
   bs4r   r   r`   r   rx   r:   r7   <module>r      s8      !  # & ) VM VMr	) 	r:   