File size: 955 Bytes
4b9ee07 9c4c3ff 4b9ee07 6b88740 49f4a83 52a1756 d6e7528 6b88740 49f4a83 d6e7528 49f4a83 a343199 49f4a83 a343199 49f4a83 52a1756 49f4a83 4b9ee07 49f4a83 8f62fdf 49f4a83 58d4f83 a343199 49f4a83 52a1756 4b9ee07 e14e089 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
const express = require("express");
const { chromium } = require("playwright");
const app = express();
app.get("/", async (req, res) => {
let browser;
try {
let { url } = req.query;
if (!url || !url.trim().startsWith("http")) return res.sendStatus(400);
const viewport = { width: 1920, height: 1080 };
browser = await chromium.launch({
args: ["--incognito", "--single-process", "--no-sandbox", "--no-zygote", "--no-cache"],
executablePath: process.env.CHROME_BIN,
headless: true,
});
const page = await browser.newPage();
await page.setViewportSize(viewport);
await page.goto(url, { waitUntil: "load", timeout: 10000 });
const buffer = await page.screenshot();
res.setHeader("Content-Type", "image/png");
res.send(buffer);
} catch {
res.sendStatus(500);
} finally {
if (browser) await browser.close();
}
});
app.listen(7860, () => console.log("Running on port 7860")); |