diff --git a/src/store/lookup.ts b/src/store/lookup.ts index b96a97e..6fc0b5a 100644 --- a/src/store/lookup.ts +++ b/src/store/lookup.ts @@ -44,8 +44,9 @@ export async function lookup(browser: puppeteer.Browser, store: Store) { const graphicsCard = `${link.brand} ${link.model}`; + let response: puppeteer.Response | null; try { - await page.goto(link.url, {waitUntil: 'networkidle0'}); + response = await page.goto(link.url, {waitUntil: 'networkidle0'}); } catch { Logger.error(`✖ [${store.name}] ${graphicsCard} skipping; timed out`); await page.close(); @@ -61,6 +62,8 @@ export async function lookup(browser: puppeteer.Browser, store: Store) { Logger.info(`✖ [${store.name}] still out of stock: ${graphicsCard}`); } else if (link.captchaLabels && includesLabels(textContent, link.captchaLabels)) { Logger.warn(`✖ [${store.name}] CAPTCHA from: ${graphicsCard}`); + } else if (response && response.status() === 429) { + Logger.warn(`✖ [${store.name}] Rate limit exceeded: ${graphicsCard}`); } else { Logger.info(`🚀🚀🚀 [${store.name}] ${graphicsCard} IN STOCK 🚀🚀🚀`); Logger.info(link.url); diff --git a/tsconfig.json b/tsconfig.json index cc40e3d..5205510 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ "esModuleInterop": true, "resolveJsonModule": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, + "sourceMap": true } }