From c0352961a99e74fa4efde836d865367e6b66b10e Mon Sep 17 00:00:00 2001 From: Jef LeCompte Date: Sun, 20 Sep 2020 14:13:29 -0400 Subject: [PATCH] refactor: extract lookup (#117) --- src/index.ts | 22 ++-------------------- src/store/lookup.ts | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/index.ts b/src/index.ts index 19af0ed..6512aa8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,31 +2,13 @@ import puppeteer from 'puppeteer-extra'; import stealthPlugin from 'puppeteer-extra-plugin-stealth'; import adblockerPlugin from 'puppeteer-extra-plugin-adblocker'; import {Config} from './config'; -import {Store, Stores} from './store/model'; +import {Stores} from './store/model'; import {Logger} from './logger'; -import {lookup} from './store'; -import {Browser} from 'puppeteer'; +import {getSleepTime, tryLookupAndLoop} from './store'; puppeteer.use(stealthPlugin()); puppeteer.use(adblockerPlugin({blockTrackers: true})); -function getSleepTime() { - return Config.browser.minSleep + (Math.random() * (Config.browser.maxSleep - Config.browser.minSleep)); -} - -async function tryLookupAndLoop(browser: Browser, store: Store) { - Logger.debug(`[${store.name}] Starting lookup...`); - try { - await lookup(browser, store); - } catch (error) { - Logger.error(error); - } - - const sleepTime = getSleepTime(); - Logger.debug(`[${store.name}] Lookup done, next one in ${sleepTime} ms`); - setTimeout(tryLookupAndLoop, sleepTime, browser, store); -} - /** * Starts the bot. */ diff --git a/src/store/lookup.ts b/src/store/lookup.ts index 3d7530e..8d44c09 100644 --- a/src/store/lookup.ts +++ b/src/store/lookup.ts @@ -26,7 +26,7 @@ function filterBrand(brand: string) { * @param browser Puppeteer browser. * @param store Vendor of graphics cards. */ -export async function lookup(browser: Browser, store: Store) { +async function lookup(browser: Browser, store: Store) { /* eslint-disable no-await-in-loop */ for (const link of store.links) { if (!filterBrand(link.brand)) { @@ -81,3 +81,20 @@ export async function lookup(browser: Browser, store: Store) { } /* eslint-enable no-await-in-loop */ } + +export function getSleepTime() { + return Config.browser.minSleep + (Math.random() * (Config.browser.maxSleep - Config.browser.minSleep)); +} + +export async function tryLookupAndLoop(browser: Browser, store: Store) { + Logger.debug(`[${store.name}] Starting lookup...`); + try { + await lookup(browser, store); + } catch (error) { + Logger.error(error); + } + + const sleepTime = getSleepTime(); + Logger.debug(`[${store.name}] Lookup done, next one in ${sleepTime} ms`); + setTimeout(tryLookupAndLoop, sleepTime, browser, store); +}