first commit
This commit is contained in:
38
dash/docs/screenshotter/screenshot.js
Normal file
38
dash/docs/screenshotter/screenshot.js
Normal file
@@ -0,0 +1,38 @@
|
||||
const puppeteer = require("puppeteer");
|
||||
const fs = require("fs");
|
||||
const PNG = require("pngjs").PNG;
|
||||
|
||||
function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
const URL = process.env.URL || "CHANGEME";
|
||||
|
||||
(async () => {
|
||||
const browser = await puppeteer.launch({
|
||||
args: ["--no-sandbox", "--disable-setuid-sandbox"],
|
||||
});
|
||||
|
||||
const page = await browser.newPage();
|
||||
|
||||
/* Kindle 4 NT resolution */
|
||||
await page.setViewport({ width: 600, height: 800 });
|
||||
|
||||
/* Might want to use networkidle0 here, depending on the type of page */
|
||||
/* See https://github.com/puppeteer/puppeteer/blob/main/docs/api.md */
|
||||
await page.goto(URL, { waitUntil: "networkidle2" });
|
||||
|
||||
/* This is a bit silly. ¯\_(ツ)_/¯
|
||||
Networkidle2 doesn't always seem to wait long enough. */
|
||||
await sleep(3000);
|
||||
|
||||
await page.screenshot({ path: "dash.png" });
|
||||
|
||||
await fs.createReadStream("dash.png")
|
||||
.pipe(new PNG({ colorType: 0 }))
|
||||
.on("parsed", function () {
|
||||
this.pack().pipe(fs.createWriteStream("dash.png"));
|
||||
});
|
||||
|
||||
browser.close();
|
||||
})();
|
||||
Reference in New Issue
Block a user