// 관리 앱 2종(가온·두레) 전용 캡처 — 쇼케이스 카드 2컷(본컷 + 모달 -2컷)과 og.png. // capture-shots.mjs 는 CLI 크롬이라 모달을 열 수 없어 이 스크립트가 -2컷을 담당한다. import puppeteer from "puppeteer-core"; import path from "node:path"; import url from "node:url"; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); const root = path.resolve(__dirname, ".."); const CHROME = "C:/Program Files/Google/Chrome/Application/chrome.exe"; const shots = path.join(root, "src", "assets", "shots"); const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); const browser = await puppeteer.launch({ executablePath: CHROME, headless: "new", args: ["--no-sandbox", "--disable-gpu", "--force-device-scale-factor=1"], defaultViewport: { width: 1440, height: 900 }, }); const page = await browser.newPage(); await page.setCacheEnabled(false); const open = async (app) => { await page.goto(url.pathToFileURL(path.join(root, "public/work", app, "index.html")).href, { waitUntil: "networkidle0" }); await page.evaluate(() => document.fonts.ready); await sleep(250); }; // 가온: 대시보드 본컷 + 학적 카드(수강생 모달) -2컷 await open("gaon-lms"); await page.screenshot({ path: path.join(shots, "work-gaon-lms.png") }); await page.screenshot({ path: path.join(root, "public/work/gaon-lms/og.png") }); await page.evaluate(() => document.querySelector('[data-view="students"]').click()); await page.evaluate(() => document.querySelector("#stu-table [data-stu]").click()); await page.waitForSelector("#stu-dialog[open]"); await sleep(350); // 모달 등장 모션 200ms + 여유 await page.screenshot({ path: path.join(shots, "work-gaon-lms-2.png") }); // 두레: 과목 찾기 본컷 + 강의계획(과목 모달) -2컷 await open("dure-enrollment"); await page.screenshot({ path: path.join(shots, "work-dure-enrollment.png") }); await page.screenshot({ path: path.join(root, "public/work/dure-enrollment/og.png") }); await page.evaluate(() => document.querySelector(".course-row").click()); await page.waitForSelector("#course-dialog[open]"); await sleep(350); await page.screenshot({ path: path.join(shots, "work-dure-enrollment-2.png") }); await browser.close(); console.log("work shots + og.png 갱신 완료");