Spaces:
Sleeping
Sleeping
| 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.' | |
| }); | |
| } | |
| } | |
| }; |