feat: temporarily pause requests if store has stock (#147)

Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
This commit is contained in:
Nachi G
2020-09-21 08:38:18 -07:00
committed by GitHub
parent 133a54fa17
commit 6413144c1c
4 changed files with 17 additions and 2 deletions
+2 -1
View File
@@ -56,7 +56,8 @@ const page = {
width: 1920,
height: 1080,
navigationTimeout: Number(process.env.PAGE_TIMEOUT ?? 30000),
userAgent: process.env.USER_AGENT ?? 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
userAgent: process.env.USER_AGENT ?? 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
inStockWaitTime: Number(process.env.IN_STOCK_WAIT_TIME ?? 0)
};
const store = {
+13 -1
View File
@@ -7,6 +7,8 @@ import {sendNotification} from '../notification';
import {includesLabels} from './includes-labels';
import {closePage, delay, getSleepTime} from '../util';
const inStock: Record<string, boolean> = {};
/**
* Returns true if the brand should be checked for stock
*
@@ -81,6 +83,12 @@ async function lookup(browser: Browser, store: Store) {
} else {
Logger.info(`🚀🚀🚀 [${store.name}] ${graphicsCard} IN STOCK 🚀🚀🚀`);
Logger.info(link.url);
if (Config.page.inStockWaitTime) {
inStock[store.name] = true;
setTimeout(() => {
inStock[store.name] = false;
}, 1000 * Config.page.inStockWaitTime);
}
if (Config.page.capture) {
Logger.debug(' saving screenshot');
@@ -109,7 +117,11 @@ async function lookup(browser: Browser, store: Store) {
export async function tryLookupAndLoop(browser: Browser, store: Store) {
Logger.debug(`[${store.name}] Starting lookup...`);
try {
await lookup(browser, store);
if (Config.page.inStockWaitTime && inStock[store.name]) {
Logger.info(`[${store.name}] Has stock, waiting before trying to lookup again...`);
} else {
await lookup(browser, store);
}
} catch (error) {
Logger.error(error);
}