diff --git a/.gitignore b/.gitignore index 84920fe..7b8b2d5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ build/ node_modules/ .env +success-*.png diff --git a/README.md b/README.md index c062a17..16cc695 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ First, you're going to need to copy the `.env.example` to `.env`. The current op | `EMAIL_USERNAME` | Gmail address; e.g. `jensen.robbed.us@gmail.com` | | `EMAIL_PASSWORD` | Gmail password; see below if you have MFA | | `STORES` | List of [stores](#Supported-stores) you want to be scraped; optional, default: `nvidia` | +| `PAGE_TIMEOUT` | Navigation Timeout in milliseconds (0 for infinite, 60000 for 1 minute); optional, default: `0` | > :point_right: If you have multi-factor authentication (MFA), you will need to create an [app password](https://myaccount.google.com/apppasswords) and use this instead of your Gmail password. diff --git a/src/config.ts b/src/config.ts index 4cf8881..f94301d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -16,7 +16,8 @@ const notifications = { const page = { height: 1920, userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36', - width: 1080 + width: 1080, + navigationTimeout: Number(process.env.PAGE_TIMEOUT) ?? 30000 }; const stores = process.env.STORES ?? 'nvidia'; diff --git a/src/index.ts b/src/index.ts index 604544b..2cd3f15 100644 --- a/src/index.ts +++ b/src/index.ts @@ -40,6 +40,7 @@ async function lookup(store: Store) { for (const link of store.links) { const browser = await puppeteer.launch(); const page = await browser.newPage(); + page.setDefaultNavigationTimeout(Config.page.navigationTimeout); await page.setUserAgent(Config.page.userAgent); await page.setViewport({ height: Config.page.height,