bot / ssweb.js
sigitganteng's picture
Create ssweb.js
8a54cb8 verified
Raw
History Blame Contribute Delete
1.98 kB
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.'
});
}
}
};