Add debug.headless option to allow debugging of puppeteer

This commit is contained in:
lowlighter
2021-03-23 23:29:05 +01:00
parent dd2728f7b3
commit 8f4034a5cf
6 changed files with 22 additions and 6 deletions

View File

@@ -27,6 +27,8 @@
const data = {animated:true, base:{}, config:{}, errors:[], plugins:{}, computed:{}} const data = {animated:true, base:{}, config:{}, errors:[], plugins:{}, computed:{}}
const imports = {plugins:Plugins, templates:Templates, metadata:conf.metadata, ...utils} const imports = {plugins:Plugins, templates:Templates, metadata:conf.metadata, ...utils}
const experimental = new Set(decodeURIComponent(q["experimental.features"] ?? "").split(" ").map(x => x.trim().toLocaleLowerCase()).filter(x => x)) const experimental = new Set(decodeURIComponent(q["experimental.features"] ?? "").split(" ").map(x => x.trim().toLocaleLowerCase()).filter(x => x))
if (conf.settings["debug.headless"])
imports.puppeteer.headless = false
//Partial parts //Partial parts
{ {

View File

@@ -6,7 +6,7 @@
import util from "util" import util from "util"
import processes from "child_process" import processes from "child_process"
import axios from "axios" import axios from "axios"
import puppeteer from "puppeteer" import _puppeteer from "puppeteer"
import git from "simple-git" import git from "simple-git"
import twemojis from "twemoji-parser" import twemojis from "twemoji-parser"
import jimp from "jimp" import jimp from "jimp"
@@ -15,13 +15,26 @@
import nodechartist from "node-chartist" import nodechartist from "node-chartist"
//Exports //Exports
export {fs, os, paths, url, util, processes, axios, puppeteer, git, opengraph, rss} export {fs, os, paths, url, util, processes, axios, git, opengraph, rss}
/**Returns module __dirname */ /**Returns module __dirname */
export function __module(module) { export function __module(module) {
return paths.join(paths.dirname(url.fileURLToPath(module))) return paths.join(paths.dirname(url.fileURLToPath(module)))
} }
/**Puppeteer instantier */
export const puppeteer = {
async launch() {
return _puppeteer.launch({
headless:this.headless,
executablePath:process.env.PUPPETEER_BROWSER_PATH,
args:this.headless ? ["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"] : [],
ignoreDefaultArgs:["--disable-extensions"]
})
},
headless:true
}
/**Plural formatter */ /**Plural formatter */
export function s(value, end = "") { export function s(value, end = "") {
return value !== 1 ? {y:"ies", "":"s"}[end] : end return value !== 1 ? {y:"ies", "":"s"}[end] : end
@@ -158,7 +171,7 @@
async resize(rendered, {paddings, convert}) { async resize(rendered, {paddings, convert}) {
//Instantiate browser if needed //Instantiate browser if needed
if (!svg.resize.browser) { if (!svg.resize.browser) {
svg.resize.browser = await puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]}) svg.resize.browser = await puppeteer.launch()
console.debug(`metrics/svg/resize > started ${await svg.resize.browser.version()}`) console.debug(`metrics/svg/resize > started ${await svg.resize.browser.version()}`)
} }
//Format padding //Format padding

View File

@@ -10,6 +10,7 @@
"port": 3000, "//": "Listening port", "port": 3000, "//": "Listening port",
"optimize": true, "//": "SVG optimization", "optimize": true, "//": "SVG optimization",
"debug": false, "//": "Debug logs", "debug": false, "//": "Debug logs",
"debug.headless": false, "//": "Debug puppeteer process",
"mocked": false, "//": "Use mocked data instead of live APIs (use 'force' to use mocked token even if real token are defined)", "mocked": false, "//": "Use mocked data instead of live APIs (use 'force' to use mocked token even if real token are defined)",
"repositories": 100, "//": "Number of repositories to use", "repositories": 100, "//": "Number of repositories to use",
"padding": ["6%", "13%"], "//": "Image padding (default)", "padding": ["6%", "13%"], "//": "Image padding (default)",

View File

@@ -74,7 +74,7 @@
case "playlist":{ case "playlist":{
//Start puppeteer and navigate to playlist //Start puppeteer and navigate to playlist
console.debug(`metrics/compute/${login}/plugins > music > starting browser`) console.debug(`metrics/compute/${login}/plugins > music > starting browser`)
const browser = await imports.puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]}) const browser = await imports.puppeteer.launch()
console.debug(`metrics/compute/${login}/plugins > music > started ${await browser.version()}`) console.debug(`metrics/compute/${login}/plugins > music > started ${await browser.version()}`)
const page = await browser.newPage() const page = await browser.newPage()
console.debug(`metrics/compute/${login}/plugins > music > loading page`) console.debug(`metrics/compute/${login}/plugins > music > loading page`)

View File

@@ -17,7 +17,7 @@
//Start puppeteer and navigate to skyline.github.com //Start puppeteer and navigate to skyline.github.com
console.debug(`metrics/compute/${login}/plugins > skyline > starting browser`) console.debug(`metrics/compute/${login}/plugins > skyline > starting browser`)
const browser = await imports.puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]}) const browser = await imports.puppeteer.launch()
console.debug(`metrics/compute/${login}/plugins > skyline > started ${await browser.version()}`) console.debug(`metrics/compute/${login}/plugins > skyline > started ${await browser.version()}`)
const page = await browser.newPage() const page = await browser.newPage()
await page.setViewport({width, height}) await page.setViewport({width, height})

View File

@@ -14,7 +14,7 @@
console.debug(`metrics/compute/${login}/plugins > topics > searching starred topics`) console.debug(`metrics/compute/${login}/plugins > topics > searching starred topics`)
let topics = [] let topics = []
console.debug(`metrics/compute/${login}/plugins > topics > starting browser`) console.debug(`metrics/compute/${login}/plugins > topics > starting browser`)
const browser = await imports.puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]}) const browser = await imports.puppeteer.launch()
console.debug(`metrics/compute/${login}/plugins > topics > started ${await browser.version()}`) console.debug(`metrics/compute/${login}/plugins > topics > started ${await browser.version()}`)
const page = await browser.newPage() const page = await browser.newPage()