const puppeteer = require("puppeteer"); const { PuppeteerBlocker } = require("@cliqz/adblocker-puppeteer"); const fetch = require("cross-fetch"); const config = require("../../src/config.js"); const fs = require("fs"); const screenshotDirectory = config.API.STORAGE_LOCATION + "/LinkWarden/screenshot's/"; const pdfDirectory = config.API.STORAGE_LOCATION + "/LinkWarden/pdf's/"; if (!fs.existsSync(screenshotDirectory)) { fs.mkdirSync(screenshotDirectory, { recursive: true }); } if (!fs.existsSync(pdfDirectory)) { fs.mkdirSync(pdfDirectory, { recursive: true }); } module.exports = async (link, id) => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await PuppeteerBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => { blocker.enableBlockingInPage(page); }); await page.goto(link, { waitUntil: "load", timeout: 0 }); await page.screenshot({ path: screenshotDirectory + id + ".png", fullPage: true, }); await page.pdf({ path: pdfDirectory + id + ".pdf", format: "a4" }); await browser.close(); };