refactor: extract lookup (#117)

This commit is contained in:
Jef LeCompte
2020-09-20 14:13:29 -04:00
committed by GitHub
parent dc0f710674
commit c0352961a9
2 changed files with 20 additions and 21 deletions
+2 -20
View File
@@ -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.
*/
+18 -1
View File
@@ -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);
}