Some checks failed
CI Pipeline / Code Quality & Typecheck (push) Waiting to run
CI Pipeline / Test Suite (macos-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (ubuntu-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (windows-latest) (push) Blocked by required conditions
CI Pipeline / Build Validation (admin) (push) Blocked by required conditions
CI Pipeline / Build Validation (desktop) (push) Blocked by required conditions
Deploy Landing Page / deploy (push) Blocked by required conditions
Deploy Landing Page / build (push) Waiting to run
Release & Packaging Pipeline / Build & Publish Admin Docker Image (push) Failing after 8s
Release & Code Signing CA Pipeline / build-and-sign-windows (push) Failing after 1m51s
Build macOS / Build & Package (macOS) (push) Failing after 4s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
Release & Code Signing CA Pipeline / build-and-sign-macos (push) Failing after 3s
Release & Packaging Pipeline / Package macOS Desktop App (push) Failing after 4s
Release & Packaging Pipeline / Package Windows Desktop App (push) Failing after 2m28s
Release & Packaging Pipeline / Publish Official GitHub Release (push) Has been skipped
123 lines
5 KiB
JavaScript
123 lines
5 KiB
JavaScript
// 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);
|