import sys
sys.stdout.reconfigure(encoding='utf-8')
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp('http://localhost:9222')
    context = browser.contexts[0]
    page = context.pages[0] if context.pages else context.new_page()
    
    url = 'https://www.facebook.com/profile.php?id=61594841053758&sk=directory_education'
    page.goto(url, wait_until='domcontentloaded', timeout=30000)
    page.wait_for_timeout(3000)
    
    # 1. Click "University" button
    uni_btn = page.locator("div[role='button']:has-text('University'), span:has-text('University')").first
    print('Clicking University button...')
    uni_btn.click()
    page.wait_for_timeout(2000)
    
    # 2. Inspect inputs
    inputs = page.locator("input, textarea")
    print('Inputs count:', inputs.count())
    for i in range(inputs.count()):
        inp = inputs.nth(i)
        aria = inp.get_attribute('aria-label') or ''
        placeholder = inp.get_attribute('placeholder') or ''
        print(f"Edu Input [{i}]: aria='{aria}' placeholder='{placeholder}'")
        
    # 3. College/University input
    college_input = page.locator("input[aria-label*='College'], input[aria-label*='University'], input[aria-label*='School']").first
    print('Typing College: San Jose State University...')
    college_input.click()
    college_input.fill('San Jose State University')
    page.wait_for_timeout(2000)
    
    # Select from dropdown
    college_opts = page.locator("div[role='listbox'] div[role='option'], div[role='option'], ul[role='listbox'] li")
    print('College dropdown options found:', college_opts.count())
    if college_opts.count() > 0:
        print('Selected college option:', college_opts.first.inner_text().replace('\n', ' '))
        college_opts.first.click()
    else:
        page.keyboard.press('Enter')
    page.wait_for_timeout(2000)
    
    # 4. Concentration / Major (if exists)
    con_input = page.locator("input[aria-label*='Concentration'], input[aria-label*='Major']")
    if con_input.count() > 0:
        print('Typing Concentration: Film and Television Production...')
        con_input.first.click()
        con_input.first.fill('Film and Television Production')
        page.wait_for_timeout(1500)
        con_opts = page.locator("div[role='listbox'] div[role='option'], div[role='option']")
        if con_opts.count() > 0:
            con_opts.first.click()
        else:
            page.keyboard.press('Tab')
        page.wait_for_timeout(1000)
        
    # 5. Check Graduated checkbox if present
    grad_cb = page.locator("input[type='checkbox'][name*='graduated'], input[name*='graduated']")
    if grad_cb.count() > 0 and not grad_cb.first.is_checked():
        grad_cb.first.check()
        page.wait_for_timeout(500)
        
    page.screenshot(path=r'C:\Projects\Historical\FacebookAutoPoster\edu_ready_to_save.png')
    
    # 6. Click Save
    save_btn = page.locator("div[role='button']:has-text('Save'), span:has-text('Save')").first
    print('Clicking Save button...')
    save_btn.click()
    page.wait_for_timeout(5000)
    
    page.screenshot(path=r'C:\Projects\Historical\FacebookAutoPoster\edu_done.png')
    print('Finished submit_education.py!')
