// scripts/playwright-fill-all-live-ad-portals.js const { chromium } = require('@playwright/test'); const path = require('path'); const fs = require('fs'); const OUTPUT_DIR = 'C:/Users/encep/.gemini/antigravity-cli/brain/3ab7ae82-5634-41d5-93a7-3c12c22503e2/screenshots/live_portal_signups'; const CREDS = { email: 'yunchanpaca@gmail.com', password: 'ONVI2v4J#y', firstName: 'Yunchan', lastName: 'Park', fullName: 'Yunchan Park', company: 'D3RO Voice AI', url: 'https://d3ro.app', }; async function fillAllLiveAdPortals() { if (!fs.existsSync(OUTPUT_DIR)) { fs.mkdirSync(OUTPUT_DIR, { recursive: true }); } const browser = await chromium.launch({ channel: 'msedge', headless: true, }); const context = await browser.newContext({ viewport: { width: 1440, height: 1080 }, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', }); // 1. AppLovin MAX try { console.log('[1/3] Interacting with AppLovin MAX Signup...'); const page = await context.newPage(); await page.goto('https://dash.applovin.com/signup', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(2000); const nameInput = page.locator('input[placeholder*="name" i]').first(); const emailInput = page.locator('input[type="email"]').first(); const companyInput = page.locator('input[placeholder*="company" i]').first(); const websiteInput = page.locator('input[placeholder*="applovin.com" i], input[placeholder*="site" i]').first(); const storeUrlInput = page.locator('input[placeholder*="store" i]').first(); const passInputs = page.locator('input[type="password"]'); if (await nameInput.isVisible()) await nameInput.fill(CREDS.fullName); if (await emailInput.isVisible()) await emailInput.fill(CREDS.email); if (await companyInput.isVisible()) await companyInput.fill(CREDS.company); if (await websiteInput.isVisible()) await websiteInput.fill(CREDS.url); if (await storeUrlInput.isVisible()) await storeUrlInput.fill('https://d3ro.app/download/desktop'); // Fill both password and confirm password const count = await passInputs.count(); for (let i = 0; i < count; i++) { await passInputs.nth(i).fill(CREDS.password); } await page.waitForTimeout(1000); const shotPath = path.join(OUTPUT_DIR, '02_applovin_max_form_filled_complete.png'); await page.screenshot({ path: shotPath, fullPage: true }); console.log('AppLovin MAX complete screenshot saved:', shotPath); await page.close(); } catch (err) { console.error('AppLovin error:', err.message); } // 2. Mintegral Developer Signup try { console.log('[2/3] Interacting with Mintegral Signup...'); const page = await context.newPage(); await page.goto('https://www.mintegral.com/en/signup', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(2000); const emailInput = page.locator('input[type="email"], input[placeholder*="email" i]').first(); const passInputs = page.locator('input[type="password"]'); if (await emailInput.isVisible()) await emailInput.fill(CREDS.email); const count = await passInputs.count(); for (let i = 0; i < count; i++) { await passInputs.nth(i).fill(CREDS.password); } await page.waitForTimeout(1000); const shotPath = path.join(OUTPUT_DIR, '03_mintegral_signup_filled_complete.png'); await page.screenshot({ path: shotPath, fullPage: false }); console.log('Mintegral complete screenshot saved:', shotPath); await page.close(); } catch (err) { console.error('Mintegral error:', err.message); } // 3. Unity ID Registration try { console.log('[3/3] Interacting with Unity ID Registration...'); const page = await context.newPage(); await page.goto('https://id.unity.com/en/conversations/new', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(2000); const emailInput = page.locator('input[type="email"]').first(); const passInput = page.locator('input[type="password"]').first(); const usernameInput = page.locator('input[name*="username" i]').first(); const fullnameInput = page.locator('input[name*="name" i]').first(); if (await emailInput.isVisible()) await emailInput.fill(CREDS.email); if (await passInput.isVisible()) await passInput.fill(CREDS.password); if (await usernameInput.isVisible()) await usernameInput.fill('yunchanpaca'); if (await fullnameInput.isVisible()) await fullnameInput.fill(CREDS.fullName); await page.waitForTimeout(1000); const shotPath = path.join(OUTPUT_DIR, '06_unity_cloud_signup_filled_complete.png'); await page.screenshot({ path: shotPath, fullPage: false }); console.log('Unity ID complete screenshot saved:', shotPath); await page.close(); } catch (err) { console.error('Unity error:', err.message); } await browser.close(); console.log('--- All Direct Browser Actions Completed! ---'); } fillAllLiveAdPortals().catch(console.error);