import json
from playwright.sync_api import sync_playwright

def get_snapchat_profile_data(username):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        context = browser.new_context(user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')
        page = context.new_page()
        page.goto(f"https://www.snapchat.com/add/{username}")
        page.wait_for_load_state("domcontentloaded")
        
        # Check for __NEXT_DATA__ script
        next_data = page.evaluate("() => { const el = document.getElementById('__NEXT_DATA__'); return el ? el.innerText : null; }")
        
        if not next_data:
            print("Next.js data not found, falling back to grabbing HTML body.")
            html = page.content()
            browser.close()
            return html[:1000]
        
        browser.close()
        return json.loads(next_data)

if __name__ == "__main__":
    data = get_snapchat_profile_data("djkhaled")
    if isinstance(data, dict):
        print("Keys:", data.keys())
        if 'props' in data:
            print("Props keys:", data['props'].keys())
            if 'pageProps' in data['props']:
                print("PageProps keys:", data['props']['pageProps'].keys())
                user_profile = data['props']['pageProps'].get('userProfile', {})
                print("User profile keys:", user_profile.keys())
    else:
        print(data)
