mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 02:57:34 +00:00
refactor: extract lookup (#117)
This commit is contained in:
+2
-20
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user