feat: low bandwidth mode (#294)

Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
This commit is contained in:
Joshua Higgins
2020-09-26 08:05:02 -04:00
committed by GitHub
parent eda6c85fc0
commit 0aa7ab596c
8 changed files with 41 additions and 2 deletions
+1
View File
@@ -49,6 +49,7 @@ function envOrNumber(environment: string | undefined, number?: number): number {
const browser = {
isHeadless: envOrBoolean(process.env.HEADLESS),
isTrusted: envOrBoolean(process.env.BROWSER_TRUSTED, false),
lowBandwidth: envOrBoolean(process.env.LOW_BANDWIDTH, false),
maxBackoff: envOrNumber(process.env.PAGE_BACKOFF_MAX, 3600000),
maxSleep: envOrNumber(process.env.PAGE_SLEEP_MAX, 10000),
minBackoff: envOrNumber(process.env.PAGE_BACKOFF_MIN, 10000),
+8 -1
View File
@@ -5,11 +5,18 @@ import {adBlocker} from './adblocker';
import {fetchLinks} from './store/fetch-links';
import {getSleepTime} from './util';
import puppeteer from 'puppeteer-extra';
import resourceBlock from 'puppeteer-extra-plugin-block-resources';
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
import {tryLookupAndLoop} from './store';
puppeteer.use(stealthPlugin());
puppeteer.use(adBlocker);
if (Config.browser.lowBandwidth) {
puppeteer.use(resourceBlock({
blockedTypes: new Set(['image', 'font'])
}));
} else {
puppeteer.use(adBlocker);
}
/**
* Starts the bot.
+1
View File
@@ -0,0 +1 @@
declare module 'puppeteer-extra-plugin-block-resources';
+4 -1
View File
@@ -42,6 +42,9 @@ export async function usingPage<T>(browser: Browser, cb: (page: Page, browser: B
}
export async function closePage(page: Page) {
await disableBlockerInPage(page);
if (!Config.browser.lowBandwidth) {
await disableBlockerInPage(page);
}
await page.close();
}