UNPKG

ssweb-api

Version:

Package ssweb API with puppeteer and google chrome

52 lines (49 loc) 1.55 kB
const uploadFile = require("./uploadFile"); const fetch = require("node-fetch"); async function getBrowser(opts = {}) { const chromeOptions = { headless: true, defaultViewport: { width: 720, height: 1080 }, timeout: 120000, args: [ "--incognito", "--no-sandbox", "--single-process", "--no-zygote", "--no-cache" ], ...opts } return await require('puppeteer').launch(chromeOptions) } async function ssweb(url, fpage = false) { const browser = await getBrowser() try { const page = await browser.newPage() await page.setUserAgent('Mozilla/5.0 (Linux; Android 11; SM-A205F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Mobile Safari/537.36') await page.goto(url, { waitUntil: 'load', timeout: 300000 }) const screenshot = await page.screenshot({ type: 'png', fullPage: fpage }) await browser.close() return screenshot } catch (e) { await browser.close() throw e } } module.exports = async function(opts) { let { url, fullpage } = opts || {}; if (!url) throw { status: 400, creator: 'Caliph', message: 'parameter url tidak boleh kosong!' }; let buffer = await ssweb(url, fullpage) let { url: result } = await uploadFile(buffer) const fetching = await fetch(url) return { status: fetching.status, creator: 'Caliph', result } }