feat: card series filter, fix: newegg oosLabels (#120)

This commit is contained in:
admon84
2020-09-20 13:51:44 -06:00
committed by GitHub
parent 7efdcd8f07
commit 252459d5d3
18 changed files with 508 additions and 314 deletions
+1
View File
@@ -14,6 +14,7 @@ PUSHOVER_USER="123pushover-user-key"
PAGE_SLEEP_MIN="5000" PAGE_SLEEP_MIN="5000"
PAGE_SLEEP_MAX="10000" PAGE_SLEEP_MAX="10000"
SHOW_ONLY_BRANDS="evga" SHOW_ONLY_BRANDS="evga"
SHOW_ONLY_SERIES="3080"
SLACK_CHANNEL="SlackChannelName" SLACK_CHANNEL="SlackChannelName"
SLACK_TOKEN="slack-token" SLACK_TOKEN="slack-token"
STORES="bestbuy,bandh,nvidia" STORES="bestbuy,bandh,nvidia"
+1
View File
@@ -78,6 +78,7 @@ Here is a list of variables that you can use to customize your newly copied `.en
| `PAGE_SLEEP_MIN` | Minimum sleep time between queries of the same store | Default: `5000` | | `PAGE_SLEEP_MIN` | Minimum sleep time between queries of the same store | Default: `5000` |
| `PAGE_SLEEP_MAX` | Maximum sleep time between queries of the same store | Default: `10000` | | `PAGE_SLEEP_MAX` | Maximum sleep time between queries of the same store | Default: `10000` |
| `SHOW_ONLY_BRANDS` | Filter to show specified brands | Comma separated, E.g.: `evga,zotac` | | `SHOW_ONLY_BRANDS` | Filter to show specified brands | Comma separated, E.g.: `evga,zotac` |
| `SHOW_ONLY_SERIES` | Filter to show specified series | Comma separated, E.g.: `3080` |
| `SLACK_CHANNEL` | Slack channel for posting | E.g., `update`, no need for `#` | | `SLACK_CHANNEL` | Slack channel for posting | E.g., `update`, no need for `#` |
| `SLACK_TOKEN` | Slack API token | | `SLACK_TOKEN` | Slack API token |
| `STORES` | [Supported stores](#supported-stores) you want to be scraped | Comma separated, default: `nvidia` | | `STORES` | [Supported stores](#supported-stores) you want to be scraped | Comma separated, default: `nvidia` |
+207 -83
View File
@@ -104,11 +104,26 @@
"lodash": "^4.17.19" "lodash": "^4.17.19"
}, },
"dependencies": { "dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"globals": { "globals": {
"version": "11.12.0", "version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true "dev": true
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
} }
} }
}, },
@@ -188,6 +203,23 @@
"lodash": "^4.17.19", "lodash": "^4.17.19",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1" "strip-json-comments": "^3.1.1"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
}
} }
}, },
"@mrmlnc/readdir-enhanced": { "@mrmlnc/readdir-enhanced": {
@@ -479,6 +511,23 @@
"regexpp": "^3.0.0", "regexpp": "^3.0.0",
"semver": "^7.3.2", "semver": "^7.3.2",
"tsutils": "^3.17.1" "tsutils": "^3.17.1"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
}
} }
}, },
"@typescript-eslint/experimental-utils": { "@typescript-eslint/experimental-utils": {
@@ -527,6 +576,23 @@
"lodash": "^4.17.15", "lodash": "^4.17.15",
"semver": "^7.3.2", "semver": "^7.3.2",
"tsutils": "^3.17.1" "tsutils": "^3.17.1"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
}
} }
}, },
"@typescript-eslint/visitor-keys": { "@typescript-eslint/visitor-keys": {
@@ -791,13 +857,6 @@
"requires": { "requires": {
"axios": "^0.19.2", "axios": "^0.19.2",
"type-fest": "^0.15.1" "type-fest": "^0.15.1"
},
"dependencies": {
"type-fest": {
"version": "0.15.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.15.1.tgz",
"integrity": "sha512-n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A=="
}
} }
}, },
"babel-eslint": { "babel-eslint": {
@@ -977,6 +1036,12 @@
"requires": { "requires": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
} }
},
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
} }
} }
}, },
@@ -1551,11 +1616,11 @@
"dev": true "dev": true
}, },
"debug": { "debug": {
"version": "4.1.1", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": { "requires": {
"ms": "^2.1.1" "ms": "2.0.0"
} }
}, },
"decamelize": { "decamelize": {
@@ -1896,6 +1961,14 @@
"dev": true, "dev": true,
"requires": { "requires": {
"is-arrayish": "^0.2.1" "is-arrayish": "^0.2.1"
},
"dependencies": {
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
}
} }
}, },
"es-abstract": { "es-abstract": {
@@ -2020,6 +2093,21 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true "dev": true
}, },
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"supports-color": { "supports-color": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2175,12 +2263,6 @@
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
} }
} }
}, },
@@ -2211,12 +2293,6 @@
"ms": "2.0.0" "ms": "2.0.0"
} }
}, },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
"semver": { "semver": {
"version": "5.7.1", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -2263,12 +2339,6 @@
"path-exists": "^3.0.0" "path-exists": "^3.0.0"
} }
}, },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
"p-limit": { "p-limit": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
@@ -2393,12 +2463,6 @@
"esutils": "^2.0.2", "esutils": "^2.0.2",
"isarray": "^1.0.0" "isarray": "^1.0.0"
} }
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
} }
} }
}, },
@@ -2508,6 +2572,12 @@
"read-pkg": "^5.2.0", "read-pkg": "^5.2.0",
"type-fest": "^0.8.1" "type-fest": "^0.8.1"
} }
},
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
} }
} }
}, },
@@ -2686,12 +2756,6 @@
"requires": { "requires": {
"is-extendable": "^0.1.0" "is-extendable": "^0.1.0"
} }
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
} }
} }
}, },
@@ -2790,6 +2854,21 @@
"debug": "^4.1.1", "debug": "^4.1.1",
"get-stream": "^5.1.0", "get-stream": "^5.1.0",
"yauzl": "^2.10.0" "yauzl": "^2.10.0"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
} }
}, },
"fast-deep-equal": { "fast-deep-equal": {
@@ -2995,21 +3074,6 @@
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": { "requires": {
"debug": "=3.1.0" "debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
} }
}, },
"for-in": { "for-in": {
@@ -3149,6 +3213,14 @@
"dev": true, "dev": true,
"requires": { "requires": {
"type-fest": "^0.8.1" "type-fest": "^0.8.1"
},
"dependencies": {
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
}
} }
}, },
"globby": { "globby": {
@@ -3339,6 +3411,21 @@
"requires": { "requires": {
"agent-base": "5", "agent-base": "5",
"debug": "4" "debug": "4"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
} }
}, },
"ieee754": { "ieee754": {
@@ -3457,10 +3544,9 @@
} }
}, },
"is-arrayish": { "is-arrayish": {
"version": "0.2.1", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
"dev": true
}, },
"is-buffer": { "is-buffer": {
"version": "1.1.6", "version": "1.1.6",
@@ -4016,6 +4102,13 @@
"fecha": "^4.2.0", "fecha": "^4.2.0",
"ms": "^2.1.1", "ms": "^2.1.1",
"triple-beam": "^1.3.0" "triple-beam": "^1.3.0"
},
"dependencies": {
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
} }
}, },
"loose-envify": { "loose-envify": {
@@ -4202,6 +4295,21 @@
"pascal-case": "^3.1.1", "pascal-case": "^3.1.1",
"snake-case": "^3.0.3", "snake-case": "^3.0.3",
"url-join": "^4.0.1" "url-join": "^4.0.1"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
} }
}, },
"messaging-api-telegram": { "messaging-api-telegram": {
@@ -4417,9 +4525,9 @@
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
}, },
"ms": { "ms": {
"version": "2.1.2", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"multimap": { "multimap": {
"version": "1.1.0", "version": "1.1.0",
@@ -5120,6 +5228,21 @@
"tar-fs": "^2.0.0", "tar-fs": "^2.0.0",
"unbzip2-stream": "^1.3.3", "unbzip2-stream": "^1.3.3",
"ws": "^7.2.3" "ws": "^7.2.3"
},
"dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
} }
}, },
"puppeteer-extra": { "puppeteer-extra": {
@@ -5602,13 +5725,6 @@
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"requires": { "requires": {
"is-arrayish": "^0.3.1" "is-arrayish": "^0.3.1"
},
"dependencies": {
"is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
}
} }
}, },
"slash": { "slash": {
@@ -5679,12 +5795,6 @@
"requires": { "requires": {
"is-extendable": "^0.1.0" "is-extendable": "^0.1.0"
} }
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
} }
} }
}, },
@@ -6306,10 +6416,9 @@
} }
}, },
"type-fest": { "type-fest": {
"version": "0.8.1", "version": "0.15.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.15.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "integrity": "sha512-n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A=="
"dev": true
}, },
"typedarray-to-buffer": { "typedarray-to-buffer": {
"version": "3.1.5", "version": "3.1.5",
@@ -6321,9 +6430,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "4.0.2", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz",
"integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==",
"dev": true "dev": true
}, },
"unbzip2-stream": { "unbzip2-stream": {
@@ -6771,6 +6880,21 @@
"update-notifier": "^4.1.0" "update-notifier": "^4.1.0"
}, },
"dependencies": { "dependencies": {
"debug": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"typescript": { "typescript": {
"version": "3.9.7", "version": "3.9.7",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
+1 -2
View File
@@ -2,11 +2,10 @@ import {Link} from '../store/model';
import {sendNotification} from '../notification'; import {sendNotification} from '../notification';
const link: Link = { const link: Link = {
series: 'debug',
brand: 'brand', brand: 'brand',
cartUrl: 'http://example.com/', cartUrl: 'http://example.com/',
captchaLabels: ['captcha'],
model: 'model', model: 'model',
oosLabels: ['out of stock'],
url: 'http://example.com/' url: 'http://example.com/'
}; };
+1
View File
@@ -59,6 +59,7 @@ const page = {
}; };
const store = { const store = {
showOnlySeries: process.env.SHOW_ONLY_SERIES ? process.env.SHOW_ONLY_SERIES.split(',') : ['3070', '3080', '3090'],
showOnlyBrands: process.env.SHOW_ONLY_BRANDS ? process.env.SHOW_ONLY_BRANDS.split(',') : [], showOnlyBrands: process.env.SHOW_ONLY_BRANDS ? process.env.SHOW_ONLY_BRANDS.split(',') : [],
stores: process.env.STORES ? process.env.STORES.split(',') : ['nvidia'] stores: process.env.STORES ? process.env.STORES.split(',') : ['nvidia']
}; };
+4 -4
View File
@@ -1,10 +1,10 @@
/** /**
* Checks if DOM has any out-of-stock related text. * Checks if DOM has any related text.
* *
* @param domText Complete DOM of website. * @param domText Complete DOM of website.
* @param oosLabels Out-of-stock labels. * @param searchLabels Search labels for a match.
*/ */
export function includesLabels(domText: string, oosLabels: string[]): boolean { export function includesLabels(domText: string, searchLabels: string[]): boolean {
const domTextLowerCase = domText.toLowerCase(); const domTextLowerCase = domText.toLowerCase();
return oosLabels.some(label => domTextLowerCase.includes(label)); return searchLabels.some(label => domTextLowerCase.includes(label));
} }
+21 -4
View File
@@ -20,6 +20,19 @@ function filterBrand(brand: string) {
return Config.store.showOnlyBrands.includes(brand); return Config.store.showOnlyBrands.includes(brand);
} }
/**
* Returns true if the series should be checked for stock
*
* @param series The series of the GPU
*/
function filterSeries(series: string) {
if (Config.store.showOnlySeries.length === 0) {
return true;
}
return Config.store.showOnlySeries.includes(series);
}
/** /**
* Responsible for looking up information about a each product within * Responsible for looking up information about a each product within
* a `Store`. It's important that we ignore `no-await-in-loop` here * a `Store`. It's important that we ignore `no-await-in-loop` here
@@ -28,8 +41,12 @@ function filterBrand(brand: string) {
* @param store Vendor of graphics cards. * @param store Vendor of graphics cards.
*/ */
async function lookup(browser: Browser, store: Store) { async function lookup(browser: Browser, store: Store) {
/* eslint-disable no-await-in-loop */ /* eslint-disable no-await-in-loop */
for (const link of store.links) { for (const link of store.links) {
if (!filterSeries(link.series)) {
continue;
}
if (!filterBrand(link.brand)) { if (!filterBrand(link.brand)) {
continue; continue;
} }
@@ -54,9 +71,9 @@ async function lookup(browser: Browser, store: Store) {
Logger.debug(textContent); Logger.debug(textContent);
if (includesLabels(textContent, link.oosLabels)) { if (includesLabels(textContent, store.labels.oosList)) {
Logger.info(`✖ [${store.name}] still out of stock: ${graphicsCard}`); Logger.info(`✖ [${store.name}] still out of stock: ${graphicsCard}`);
} else if (link.captchaLabels && includesLabels(textContent, link.captchaLabels)) { } else if (store.labels.captchaList && includesLabels(textContent, store.labels.captchaList)) {
Logger.warn(`✖ [${store.name}] CAPTCHA from: ${graphicsCard}. Waiting for a bit with this store...`); Logger.warn(`✖ [${store.name}] CAPTCHA from: ${graphicsCard}. Waiting for a bit with this store...`);
await delay(getSleepTime()); await delay(getSleepTime());
} else if (response && response.status() === 429) { } else if (response && response.status() === 429) {
@@ -81,7 +98,7 @@ async function lookup(browser: Browser, store: Store) {
await page.close(); await page.close();
} }
/* eslint-enable no-await-in-loop */ /* eslint-enable no-await-in-loop */
} }
export async function tryLookupAndLoop(browser: Browser, store: Store) { export async function tryLookupAndLoop(browser: Browser, store: Store) {
+26 -24
View File
@@ -3,61 +3,63 @@ import {Store} from './store';
export const Adorama: Store = { export const Adorama: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.adorama.com/ev08gp43067k.html'
},
{
series: '3080',
brand: 'pny', brand: 'pny',
model: 'xlr8', model: 'xlr8',
url: 'https://www.adorama.com/pnv301tfxmpb.html', url: 'https://www.adorama.com/pnv301tfxmpb.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
url: 'https://www.adorama.com/msig380gxt1.html', url: 'https://www.adorama.com/msig380gxt1.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
url: 'https://www.adorama.com/ev10g53897kr.html', url: 'https://www.adorama.com/ev10g53897kr.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
url: 'https://www.adorama.com/ev10g53885kr.html', url: 'https://www.adorama.com/ev10g53885kr.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
url: 'https://www.adorama.com/ev10g53895kr.html', url: 'https://www.adorama.com/ev10g53895kr.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
url: 'https://www.adorama.com/ev10g53883kr.html', url: 'https://www.adorama.com/ev10g53883kr.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
url: 'https://www.adorama.com/ev10g53881kr.html', url: 'https://www.adorama.com/ev10g53881kr.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
url: 'https://www.adorama.com/msig38v3x10c.html', url: 'https://www.adorama.com/msig38v3x10c.html'
oosLabels: ['temporarily not available', 'out of stock'],
captchaLabels: ['please verify you are a human']
} }
], ],
labels: {
oosList: ['temporarily not available', 'out of stock'],
captchaList: ['please verify you are a human']
},
name: 'adorama' name: 'adorama'
}; };
+32 -33
View File
@@ -3,82 +3,81 @@ import {Store} from './store';
export const AmazonCa: Store = { export const AmazonCa: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.amazon.ca/GeForce-RTX-2060-Architecture-Graphics/dp/B07PBLD2MX/ref=sr_1_2'
},
{
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
url: 'https://www.amazon.ca/MSI-GeForce-RTX-3080-10G/dp/B08HR7SV3M?ref_=ast_sto_dp', url: 'https://www.amazon.ca/MSI-GeForce-RTX-3080-10G/dp/B08HR7SV3M?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
url: 'https://www.amazon.ca/EVGA-GeForce-Technology-Backplate-10G-P5-3895-KR/dp/B08HR3DPGW?ref_=ast_sto_dp', url: 'https://www.amazon.ca/EVGA-GeForce-Technology-Backplate-10G-P5-3895-KR/dp/B08HR3DPGW?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
url: 'https://www.amazon.ca/EVGA-GeForce-Technology-Backplate-10G-P5-3897-KR/dp/B08HR3Y5GQ?ref_=ast_sto_dp', url: 'https://www.amazon.ca/EVGA-GeForce-Technology-Backplate-10G-P5-3897-KR/dp/B08HR3Y5GQ?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
url: 'https://www.amazon.ca/EVGA-GeForce-Cooling-Backplate-10G-P5-3885-KR/dp/B08HR55YB5?ref_=ast_sto_dp', url: 'https://www.amazon.ca/EVGA-GeForce-Cooling-Backplate-10G-P5-3885-KR/dp/B08HR55YB5?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
url: 'https://www.amazon.ca/EVGA-GeForce-Cooling-Backplate-10G-P5-3883-KR/dp/B08HR4RJ3Q?ref_=ast_sto_dp', url: 'https://www.amazon.ca/EVGA-GeForce-Cooling-Backplate-10G-P5-3883-KR/dp/B08HR4RJ3Q?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
url: 'https://www.amazon.ca/EVGA-GeForce-Gaming-Cooling-10G-P5-3881-KR/dp/B08HR6FMF3?ref_=ast_sto_dp', url: 'https://www.amazon.ca/EVGA-GeForce-Gaming-Cooling-10G-P5-3881-KR/dp/B08HR6FMF3?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
url: 'https://www.amazon.ca/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080GAMING/dp/B08HJTH61J?ref_=ast_sto_dp', url: 'https://www.amazon.ca/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080GAMING/dp/B08HJTH61J?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
url: 'https://www.amazon.ca/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080EAGLE/dp/B08HJS2JLJ?ref_=ast_sto_dp', url: 'https://www.amazon.ca/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080EAGLE/dp/B08HJS2JLJ?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
url: 'https://www.amazon.ca/Asus-90YV0FB0-M0AM00-TUF-RTX3080-10G-GAMING/dp/B08HHDP9DW?ref_=ast_sto_dp', url: 'https://www.amazon.ca/Asus-90YV0FB0-M0AM00-TUF-RTX3080-10G-GAMING/dp/B08HHDP9DW?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
url: 'https://www.amazon.ca/Asus-90YV0FB1-M0AM00-TUF-RTX3080-O10G-GAMING/dp/B08HH5WF97?ref_=ast_sto_dp', url: 'https://www.amazon.ca/Asus-90YV0FB1-M0AM00-TUF-RTX3080-O10G-GAMING/dp/B08HH5WF97?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
url: 'https://www.amazon.ca/MSI-GeForce-RTX-3080-10G/dp/B08HR5SXPS?ref_=ast_sto_dp', url: 'https://www.amazon.ca/MSI-GeForce-RTX-3080-10G/dp/B08HR5SXPS?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
} }
], ],
labels: {
oosList: ['currently unavailable'],
captchaList: ['enter the characters you see below']
},
name: 'amazon-ca' name: 'amazon-ca'
}; };
+36 -39
View File
@@ -3,96 +3,93 @@ import {Store} from './store';
export const Amazon: Store = { export const Amazon: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.amazon.com/MSI-GeForce-RTX-2060-Architecture/dp/B07MQ36Z6L/ref=sr_1_4'
},
{
series: '3080',
brand: 'pny', brand: 'pny',
model: 'xlr8', model: 'xlr8',
url: 'https://www.amazon.com/PNY-GeForce-Gaming-Epic-X-Graphics/dp/B08HBR7QBM?ref_=ast_sto_dp', url: 'https://www.amazon.com/PNY-GeForce-Gaming-Epic-X-Graphics/dp/B08HBR7QBM?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
url: 'https://www.amazon.com/MSI-GeForce-RTX-3080-10G/dp/B08HR7SV3M?ref_=ast_sto_dp', url: 'https://www.amazon.com/MSI-GeForce-RTX-3080-10G/dp/B08HR7SV3M?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
url: 'https://www.amazon.com/EVGA-10G-P5-3897-KR-GeForce-Technology-Backplate/dp/B08HR3Y5GQ?ref_=ast_sto_dp', url: 'https://www.amazon.com/EVGA-10G-P5-3897-KR-GeForce-Technology-Backplate/dp/B08HR3Y5GQ?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
url: 'https://www.amazon.com/EVGA-10G-P5-3885-KR-GeForce-Cooling-Backplate/dp/B08HR55YB5?ref_=ast_sto_dp', url: 'https://www.amazon.com/EVGA-10G-P5-3885-KR-GeForce-Cooling-Backplate/dp/B08HR55YB5?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
url: 'https://www.amazon.com/EVGA-10G-P5-3895-KR-GeForce-Technology-Backplate/dp/B08HR3DPGW?ref_=ast_sto_dp', url: 'https://www.amazon.com/EVGA-10G-P5-3895-KR-GeForce-Technology-Backplate/dp/B08HR3DPGW?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
url: 'https://www.amazon.com/EVGA-10G-P5-3883-KR-GeForce-Cooling-Backplate/dp/B08HR4RJ3Q?ref_=ast_sto_dp', url: 'https://www.amazon.com/EVGA-10G-P5-3883-KR-GeForce-Cooling-Backplate/dp/B08HR4RJ3Q?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
url: 'https://www.amazon.com/EVGA-10G-P5-3881-KR-GeForce-GAMING-Cooling/dp/B08HR6FMF3?ref_=ast_sto_dp', url: 'https://www.amazon.com/EVGA-10G-P5-3881-KR-GeForce-GAMING-Cooling/dp/B08HR6FMF3?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
url: 'https://www.amazon.com/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080GAMING/dp/B08HJTH61J?ref_=ast_sto_dp', url: 'https://www.amazon.com/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080GAMING/dp/B08HJTH61J?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
url: 'https://www.amazon.com/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080EAGLE/dp/B08HJS2JLJ?ref_=ast_sto_dp', url: 'https://www.amazon.com/GIGABYTE-GeForce-Graphics-WINDFORCE-GV-N3080EAGLE/dp/B08HJS2JLJ?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
url: 'https://www.amazon.com/ASUS-Graphics-DisplayPort-Military-Grade-Certification/dp/B08HH5WF97?ref_=ast_sto_dp', url: 'https://www.amazon.com/ASUS-Graphics-DisplayPort-Military-Grade-Certification/dp/B08HH5WF97?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
url: 'https://www.amazon.com/ASUS-Graphics-DisplayPort-Military-Grade-Certification/dp/B08HHDP9DW?ref_=ast_sto_dp', url: 'https://www.amazon.com/ASUS-Graphics-DisplayPort-Military-Grade-Certification/dp/B08HHDP9DW?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
url: 'https://www.amazon.com/MSI-GeForce-RTX-3080-10G/dp/B08HR5SXPS?ref_=ast_sto_dp', url: 'https://www.amazon.com/MSI-GeForce-RTX-3080-10G/dp/B08HR5SXPS?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
}, },
{ {
series: '3080',
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
url: 'https://www.amazon.com/ZOTAC-Graphics-IceStorm-Advanced-ZT-A30800D-10P/dp/B08HJNKT3P?ref_=ast_sto_dp', url: 'https://www.amazon.com/ZOTAC-Graphics-IceStorm-Advanced-ZT-A30800D-10P/dp/B08HJNKT3P?ref_=ast_sto_dp'
oosLabels: ['currently unavailable'],
captchaLabels: ['enter the characters you see below']
} }
], ],
labels: {
oosList: ['currently unavailable'],
captchaList: ['enter the characters you see below']
},
name: 'amazon' name: 'amazon'
}; };
+7 -4
View File
@@ -3,18 +3,21 @@ import {Store} from './store';
export const Asus: Store = { export const Asus: Store = {
links: [ links: [
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
url: 'https://store.asus.com/us/item/202009AM160000001/', url: 'https://store.asus.com/us/item/202009AM160000001/'
oosLabels: ['coming soon', 'temporarily sold out']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
url: 'https://store.asus.com/us/item/202009AM150000004/', url: 'https://store.asus.com/us/item/202009AM150000004/'
oosLabels: ['coming soon', 'temporarily sold out']
} }
], ],
labels: {
oosList: ['coming soon', 'temporarily sold out']
},
name: 'asus' name: 'asus'
}; };
+25 -16
View File
@@ -3,54 +3,63 @@ import {Store} from './store';
export const BAndH: Store = { export const BAndH: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.bhphotovideo.com/c/product/1452927-REG/evga_06g_p4_2063_kr_geforce_rtx_2060_xc.html'
},
{
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
url: 'https://www.bhphotovideo.com/c/product/1593649-REG/asus_tuf_rtx3080_10g_gaming_tuf_gaming_geforce_rtx.html', url: 'https://www.bhphotovideo.com/c/product/1593649-REG/asus_tuf_rtx3080_10g_gaming_tuf_gaming_geforce_rtx.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
url: 'https://www.bhphotovideo.com/c/product/1593333-REG/gigabyte_gv_n3080gaming_oc_10gd_geforce_rtx_3080_gaming.html', url: 'https://www.bhphotovideo.com/c/product/1593333-REG/gigabyte_gv_n3080gaming_oc_10gd_geforce_rtx_3080_gaming.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
url: 'https://www.bhphotovideo.com/c/product/1592969-REG/zotac_zt_a30800d_10p_gaming_geforce_rtx_3080.html', url: 'https://www.bhphotovideo.com/c/product/1592969-REG/zotac_zt_a30800d_10p_gaming_geforce_rtx_3080.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
url: 'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html', url: 'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
url: 'https://www.bhphotovideo.com/c/product/1593996-REG/msi_g3080gxt10_geforce_rtx_3080_gaming.html', url: 'https://www.bhphotovideo.com/c/product/1593996-REG/msi_g3080gxt10_geforce_rtx_3080_gaming.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
url: 'https://www.bhphotovideo.com/c/product/1593997-REG/msi_g3080v3x10c_geforce_rtx_3080_ventus.html', url: 'https://www.bhphotovideo.com/c/product/1593997-REG/msi_g3080v3x10c_geforce_rtx_3080_ventus.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio - duplicate', model: 'gaming x trio - duplicate',
url: 'https://www.bhphotovideo.com/c/product/1593645-REG/msi_geforce_rtx_3080_gaming.html', url: 'https://www.bhphotovideo.com/c/product/1593645-REG/msi_geforce_rtx_3080_gaming.html'
oosLabels: ['notify when available']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc - duplicate', model: 'ventus 3x oc - duplicate',
url: 'https://www.bhphotovideo.com/c/product/1593646-REG/msi_geforce_rtx_3080_ventus.html', url: 'https://www.bhphotovideo.com/c/product/1593646-REG/msi_geforce_rtx_3080_ventus.html'
oosLabels: ['notify when available']
} }
], ],
labels: {
oosList: ['notify when available']
},
name: 'bandh' name: 'bandh'
}; };
+51 -42
View File
@@ -3,54 +3,63 @@ import {Store} from './store';
export const BestBuy: Store = { export const BestBuy: Store = {
links: [ links: [
{ {
cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart', series: 'debug',
brand: 'asus', brand: 'TEST',
model: 'rog strix', model: 'CARD',
url: 'https://www.bestbuy.com/site/asus-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-strix-graphics-card-black/6432445.p?skuId=6432445', url: 'https://www.bestbuy.com/site/nvidia-geforce-rtx-2060-super-8gb-gddr6-pci-express-graphics-card-black-silver/6361329.p?skuId=6361329'
oosLabels: ['sold out', 'coming soon']
}, },
{ {
cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart', series: '3080',
brand: 'evga',
model: 'xc3 black',
url: 'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6432399.p?skuId=6432399',
oosLabels: ['sold out', 'coming soon']
},
{
cartUrl: 'https://api.bestbuy.com/click/-/6432400/cart',
brand: 'evga',
model: 'xc3 ultra',
url: 'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6432400.p?skuId=6432400',
oosLabels: ['sold out', 'coming soon']
},
{
cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart',
brand: 'gigabyte',
model: 'gaming oc',
url: 'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6430620.p?acampID=0&cmp=RMX&loc=Hatch&ref=198&skuId=6430620',
oosLabels: ['sold out', 'coming soon']
},
{
cartUrl: 'https://api.bestbuy.com/click/-/6430621/cart',
brand: 'gigabyte',
model: 'eagle oc',
url: 'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6430621.p?skuId=6430621',
oosLabels: ['sold out', 'coming soon']
},
{
cartUrl: 'https://api.bestbuy.com/click/-/6430175/cart',
brand: 'msi',
model: 'ventus 3x oc',
url: 'https://www.bestbuy.com/site/msi-geforce-rtx-3080-ventus-3x-10g-oc-bv-gddr6x-pci-express-4-0-graphic-card-black-silver/6430175.p?skuId=6430175',
oosLabels: ['sold out', 'coming soon']
},
{
cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart',
brand: 'nvidia', brand: 'nvidia',
model: 'founders edition', model: 'founders edition',
url: 'https://www.bestbuy.com/site/nvidia-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card-titanium-and-black/6429440.p?skuId=6429440', url: 'https://www.bestbuy.com/site/nvidia-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card-titanium-and-black/6429440.p?skuId=6429440',
oosLabels: ['sold out', 'coming soon'] cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart'
},
{
series: '3080',
brand: 'asus',
model: 'rog strix',
url: 'https://www.bestbuy.com/site/asus-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-strix-graphics-card-black/6432445.p?skuId=6432445',
cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart'
},
{
series: '3080',
brand: 'evga',
model: 'xc3 black',
url: 'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6432399.p?skuId=6432399',
cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart'
},
{
series: '3080',
brand: 'evga',
model: 'xc3 ultra',
url: 'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6432400.p?skuId=6432400',
cartUrl: 'https://api.bestbuy.com/click/-/6432400/cart'
},
{
series: '3080',
brand: 'gigabyte',
model: 'gaming oc',
url: 'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6430620.p?acampID=0&cmp=RMX&loc=Hatch&ref=198&skuId=6430620',
cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart'
},
{
series: '3080',
brand: 'gigabyte',
model: 'eagle oc',
url: 'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6430621.p?skuId=6430621',
cartUrl: 'https://api.bestbuy.com/click/-/6430621/cart'
},
{
series: '3080',
brand: 'msi',
model: 'ventus 3x oc',
url: 'https://www.bestbuy.com/site/msi-geforce-rtx-3080-ventus-3x-10g-oc-bv-gddr6x-pci-express-4-0-graphic-card-black-silver/6430175.p?skuId=6430175',
cartUrl: 'https://api.bestbuy.com/click/-/6430175/cart'
} }
], ],
labels: {
oosList: ['sold out', 'coming soon']
},
name: 'bestbuy' name: 'bestbuy'
}; };
+17 -8
View File
@@ -3,30 +3,39 @@ import {Store} from './store';
export const Evga: Store = { export const Evga: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.evga.com/products/product.aspx?pn=06G-P4-2065-KR'
},
{
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3881-KR', url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3881-KR'
oosLabels: ['out of stock']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3897-KR', url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3897-KR'
oosLabels: ['out of stock']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3883-KR', url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3883-KR'
oosLabels: ['out of stock']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3885-KR', url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3885-KR'
oosLabels: ['out of stock']
} }
], ],
labels: {
oosList: ['out of stock']
},
name: 'evga' name: 'evga'
}; };
+21 -12
View File
@@ -3,41 +3,50 @@ import {Store} from './store';
export const MicroCenter: Store = { export const MicroCenter: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.microcenter.com/product/618433/evga-geforce-rtx-2060-ko-ultra-overclocked-dual-fan-6gb-gddr6-pcie-30-graphics-card'
},
{
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
url: 'https://www.microcenter.com/product/628344/evga-geforce-rtx-3080-xc3-ultra-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card', url: 'https://www.microcenter.com/product/628344/evga-geforce-rtx-3080-xc3-ultra-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card'
oosLabels: ['sold out']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x', model: 'ventus 3x',
url: 'https://www.microcenter.com/product/628331/msi-geforce-rtx-3080-ventus-3x-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card', url: 'https://www.microcenter.com/product/628331/msi-geforce-rtx-3080-ventus-3x-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card'
oosLabels: ['sold out']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
url: 'https://www.microcenter.com/product/628303/asus-geforce-rtx-3080-tuf-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card', url: 'https://www.microcenter.com/product/628303/asus-geforce-rtx-3080-tuf-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card'
oosLabels: ['sold out']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
url: 'https://www.microcenter.com/product/628330/msi-geforce-rtx-3080-gaming-x-trio-triple-fan-10gb-gddr6x-pcie-40-graphics-card', url: 'https://www.microcenter.com/product/628330/msi-geforce-rtx-3080-gaming-x-trio-triple-fan-10gb-gddr6x-pcie-40-graphics-card'
oosLabels: ['sold out']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
url: 'https://www.microcenter.com/product/628340/evga-geforce-rtx-3080-xc3-black-triple-fan-10gb-gddr6x-pcie-40-graphics-card', url: 'https://www.microcenter.com/product/628340/evga-geforce-rtx-3080-xc3-black-triple-fan-10gb-gddr6x-pcie-40-graphics-card'
oosLabels: ['sold out']
}, },
{ {
series: '3080',
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
url: 'https://www.microcenter.com/product/628607/zotac-geforce-rtx-3080-trinity-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card', url: 'https://www.microcenter.com/product/628607/zotac-geforce-rtx-3080-trinity-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card'
oosLabels: ['sold out']
} }
], ],
labels: {
oosList: ['sold out']
},
name: 'microcenter' name: 'microcenter'
}; };
+37 -39
View File
@@ -3,96 +3,94 @@ import {Store} from './store';
export const NewEgg: Store = { export const NewEgg: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://www.newegg.com/evga-geforce-rtx-2060-06g-p4-2066-kr/p/N82E16814487488',
cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart'
},
{
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
url: 'https://www.newegg.com/asus-geforce-rtx-3080-tuf-rtx3080-10g-gaming/p/N82E16814126453', url: 'https://www.newegg.com/asus-geforce-rtx-3080-tuf-rtx3080-10g-gaming/p/N82E16814126453'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
url: 'https://www.newegg.com/evga-geforce-rtx-3080-10g-p5-3881-kr/p/N82E16814487522', url: 'https://www.newegg.com/evga-geforce-rtx-3080-10g-p5-3881-kr/p/N82E16814487522'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
url: 'https://www.newegg.com/evga-geforce-rtx-3080-10g-p5-3883-kr/p/N82E16814487521', url: 'https://www.newegg.com/evga-geforce-rtx-3080-10g-p5-3883-kr/p/N82E16814487521'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
url: 'https://www.newegg.com/evga-geforce-rtx-3080-10g-p5-3885-kr/p/N82E16814487520', url: 'https://www.newegg.com/evga-geforce-rtx-3080-10g-p5-3885-kr/p/N82E16814487520'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x', model: 'ventus 3x',
url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx-3080-ventus-3x-10g/p/N82E16814137600', url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx-3080-ventus-3x-10g/p/N82E16814137600'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx-3080-ventus-3x-10g-oc/p/N82E16814137598', url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx-3080-ventus-3x-10g-oc/p/N82E16814137598'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx-3080-gaming-x-trio-10g/p/N82E16814137597', url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx-3080-gaming-x-trio-10g/p/N82E16814137597'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080gaming-oc-10gd/p/N82E16814932329', url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080gaming-oc-10gd/p/N82E16814932329'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080eagle-oc-10gd/p/N82E16814932330', url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080eagle-oc-10gd/p/N82E16814932330'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
url: 'https://www.newegg.com/zotac-geforce-rtx-3080-zt-a30800d-10p/p/N82E16814500502', url: 'https://www.newegg.com/zotac-geforce-rtx-3080-zt-a30800d-10p/p/N82E16814500502'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'rog strix', model: 'rog strix',
url: 'https://www.newegg.com/asus-geforce-rtx-3080-rog-strix-rtx3080-o10g-gaming/p/N82E16814126457', url: 'https://www.newegg.com/asus-geforce-rtx-3080-rog-strix-rtx3080-o10g-gaming/p/N82E16814126457'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
url: 'https://www.newegg.com/asus-geforce-rtx-3080-tuf-rtx3080-o10g-gaming/p/N82E16814126452', url: 'https://www.newegg.com/asus-geforce-rtx-3080-tuf-rtx3080-o10g-gaming/p/N82E16814126452'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
}, },
{ {
series: '3080',
brand: 'zotac', brand: 'zotac',
model: 'trinity oc', model: 'trinity oc',
url: 'https://www.newegg.com/zotac-geforce-rtx-3080-zt-t30800j-10p/p/N82E16814500504', url: 'https://www.newegg.com/zotac-geforce-rtx-3080-zt-t30800j-10p/p/N82E16814500504'
oosLabels: ['auto notify', 'out of stock'],
captchaLabels: ['are you a human?']
} }
], ],
labels: {
oosList: ['auto notify'],
captchaList: ['are you a human?']
},
name: 'newegg' name: 'newegg'
}; };
+12 -1
View File
@@ -3,11 +3,22 @@ import {Store} from './store';
export const Nvidia: Store = { export const Nvidia: Store = {
links: [ links: [
{ {
series: 'debug',
brand: 'TEST',
model: 'CARD',
url: 'https://api.digitalriver.com/v1/shoppers/me/products/5379432500/inventory-status?apiKey=9485fa7b159e42edb08a83bde0d83dia',
cartUrl: 'https://www.nvidia.com/en-us/shop/geforce'
},
{
series: '3080',
brand: 'nvidia', brand: 'nvidia',
model: 'founders edition', model: 'founders edition',
url: 'https://api.digitalriver.com/v1/shoppers/me/products/5438481700/inventory-status?apiKey=9485fa7b159e42edb08a83bde0d83dia', url: 'https://api.digitalriver.com/v1/shoppers/me/products/5438481700/inventory-status?apiKey=9485fa7b159e42edb08a83bde0d83dia',
oosLabels: ['product_inventory_out_of_stock', 'rate limit exceeded'] cartUrl: 'https://www.nvidia.com/en-us/shop/geforce'
} }
], ],
labels: {
oosList: ['product_inventory_out_of_stock', 'rate limit exceeded']
},
name: 'nvidia' name: 'nvidia'
}; };
+8 -3
View File
@@ -1,13 +1,18 @@
export interface Link { export interface Link {
cartUrl?: string; series: string;
brand: string; brand: string;
model: string; model: string;
url: string; url: string;
oosLabels: string[]; cartUrl?: string;
captchaLabels?: string[]; }
export interface Labels {
oosList: string[];
captchaList?: string[];
} }
export interface Store { export interface Store {
links: Link[]; links: Link[];
labels: Labels;
name: string; name: string;
} }