+
    ",j              	          ^ RI t ^ RIHt  ! R R4      t]R8X  d   ]! 4       tRt]! R] R24       ]P                  ]4      t	]	'       d   ]! R	]	R
,          P                  R4       R]	R
,          P                  R4       R24       ]! R]	R,          '       d    ]! ]	R,          P                  R. 4      4      M^  24       ]! R]! ]	R,          4       24       ]! R]! ]	R,          4       24       R# ]! R4       R# R# )    N)sync_playwrightc                   H   a  ] tR t^t o R	R ltR tR tR tR tR t	Rt
V tR# )
SnapchatClientc                    Wn         R # )Nheadless)selfr   s   &&M/Users/ii/Documents/ChatGPT/cvapplications/uitestphantom/rvsnapchat/client.py__init__SnapchatClient.__init__   s         c                   \        4       ;_uu_ 4       pVP                  P                  V P                  R7      pVP	                  RR7      pVP                  4       pVP                  RV 24       VP                  R4       VP                  R4      pVP                  4        V'       d!   \        P                  ! V4      uuRRR4       #  RRR4       R#   + '       g   i     R# ; i)z:Scrapes the Next.js __NEXT_DATA__ block from Snapchat web.r   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36)
user_agentzhttps://www.snapchat.com/add/domcontentloadedz_() => { const el = document.getElementById('__NEXT_DATA__'); return el ? el.innerText : null; }N)r   chromiumlaunchr   new_contextnew_pagegotowait_for_load_stateevaluateclosejsonloads)r	   usernamepbrowsercontextpage	next_datas   &&     r
   _get_page_dataSnapchatClient._get_page_data   s    !jj'''?G))  6g)  hG##%DII5hZ@A$$%78   'H  IIMMOzz),   s   B,C
CC&	c                   V P                  V4      pV'       g   R# VP                  R/ 4      P                  R/ 4      P                  R/ 4      pVP                  R4      pVR8X  d   VP                  R/ 4      # VR8X  d   VP                  R/ 4      # VP                  R4      ;'       g    VP                  R4      ;'       g    / # )z%Returns the public user profile info.Nprops	pagePropsuserProfile$casepublicProfileInfouserInfor!   get)r	   r   datauser_profilecases   &&   r
   get_profileSnapchatClient.get_profile   s    ""8,xx,00bAEEmUWX(&&##$7<<Z##J33  34ZZ8H8H8TZZXZZr   c                    V P                  V4      pV'       g   R# VP                  R/ 4      P                  R/ 4      P                  R/ 4      pV# )z+Returns current public stories of the user.Nr$   r%   storyr*   )r	   r   r,   r2   s   &&  r
   get_storiesSnapchatClient.get_stories*   sG    ""8,"%))+r:>>wKr   c                    V P                  V4      pV'       g   R# VP                  R/ 4      P                  R/ 4      pRVP                  R. 4      RVP                  R. 4      /# )z5Returns curated and spotlight highlights of the user.Nr$   r%   curatedHighlightsspotlightHighlightsr*   )r	   r   r,   
page_propss   &&  r
   get_highlightsSnapchatClient.get_highlights2   sa    ""8,XXgr*..{B?
0CR!H!:>>2G#L
 	
r   c                   V P                  V4      pV'       g   R# VP                  R/ 4      P                  R/ 4      pVP                  R/ 4      pVP                  R4      pV'       d   VP                  V/ 4      M3VP                  R4      ;'       g    VP                  R4      ;'       g    / pRVR	VP                  R	/ 4      R
VP                  R
. 4      RVP                  R. 4      /# )z'Returns all aggregated data for a user.Nr$   r%   r&   r'   r(   r)   profiler2   r6   r7   r*   )r	   r   r,   r8   r-   r.   profile_datas   &&     r
   get_full_dataSnapchatClient.get_full_data=   s    ""8,XXgr*..{B?
!~~mR8(59|''b1@P@PQd@e  AL  ALiuiyiy  {E  jF  AL  AL  JL |Z^^GR00CR!H!:>>2G#L	
 	
r   r   N)T)__name__
__module____qualname____firstlineno__r   r!   r/   r3   r9   r>   __static_attributes____classdictcell__)__classdict__s   @r
   r   r      s)     !$[ 	

 
r   r   __main__kyliejennerzFetching data for z...z	Profile: r<   displayNamez (@r   )zActive Story Snaps: r2   snapListzCurated Highlights: r6   zSpotlight Highlights: r7   zFailed to fetch data.)r   playwright.sync_apir   r   r@   clientr   printr>   	full_datar+   len r   r
   <module>rR      s    /H
 H
T zFH	xj
,-$$X.I	)I.22=AB#iPYFZF^F^_iFjEkklmn$T]^eTfTfS7);)?)?
B)O%Plm$nop$S3F)G%H$IJK&s95J+K'L&MNO%& r   