mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 09:57:38 +00:00
feat: enhanced lookup behaviour (#270)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
This commit is contained in:
+30
-1
@@ -1,5 +1,6 @@
|
||||
import {Browser, Page, Response} from 'puppeteer';
|
||||
import {Config} from './config';
|
||||
import {Page} from 'puppeteer';
|
||||
import {Logger} from './logger';
|
||||
import {disableBlockerInPage} from './adblocker';
|
||||
|
||||
export function getSleepTime() {
|
||||
@@ -12,6 +13,34 @@ export async function delay(ms: number) {
|
||||
});
|
||||
}
|
||||
|
||||
export async function usingResponse<T>(
|
||||
browser: Browser,
|
||||
url: string,
|
||||
cb: (response: (Response | null), page: Page, browser: Browser) => Promise<T>
|
||||
): Promise<T> {
|
||||
return usingPage(browser, async (page, browser) => {
|
||||
const response = await page.goto(url, {waitUntil: 'domcontentloaded'});
|
||||
|
||||
return cb(response, page, browser);
|
||||
});
|
||||
}
|
||||
|
||||
export async function usingPage<T>(browser: Browser, cb: (page: Page, browser: Browser) => Promise<T>): Promise<T> {
|
||||
const page = await browser.newPage();
|
||||
page.setDefaultNavigationTimeout(Config.page.navigationTimeout);
|
||||
await page.setUserAgent(Config.page.userAgent);
|
||||
|
||||
try {
|
||||
return await cb(page, browser);
|
||||
} finally {
|
||||
try {
|
||||
await closePage(page);
|
||||
} catch (error) {
|
||||
Logger.error(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function closePage(page: Page) {
|
||||
await disableBlockerInPage(page);
|
||||
await page.close();
|
||||
|
||||
Reference in New Issue
Block a user