const puppeteer = require('puppeteer'); module.exports = { cmd: 'ssweb', desc: 'Screenshot web tampilan PC kualitas HD', execute: async (req, res) => { const text = req.query.text; if (!text) { return res.json({ status: false, type: 'text', message: 'Masukan URL! Contoh: .ssweb https://google.com' }); } const targetUrl = text.startsWith('http') ? text : `https://${text}`; let browser; try { browser = await puppeteer.launch({ headless: 'new', args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-accelerated-2d-canvas', '--no-first-run', '--no-zygote', '--disable-gpu' ] }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'); await page.setViewport({ width: 1920, height: 1080, deviceScaleFactor: 2 }); await page.goto(targetUrl, { waitUntil: 'networkidle2', timeout: 60000 }); const buffer = await page.screenshot({ type: 'png', fullPage: true }); await browser.close(); res.set({ 'Content-Type': 'image/png', 'Cache-Control': 'public, max-age=31536000' }); return res.send(buffer); } catch (error) { if (browser) await browser.close(); return res.json({ status: false, type: 'text', message: 'Server error atau URL tidak dapat diakses.' }); } } };