Skip to content

Commit bf2f6fe

Browse files
committed
Add multiple user agents
Hopefully avoid 503 errors
1 parent 0aabb03 commit bf2f6fe

10 files changed

Lines changed: 92 additions & 11 deletions

File tree

main.js

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ const URLS = [
2424
// How often to check for products. Too often may be dangerous, especially for Amazon.
2525
const INTERVAL = {
2626
unit: 'seconds', // seconds, m: minutes, h: hours
27-
value: 10
27+
value: 5
2828
}
2929

3030
// Opens the product url in your default browser if set to true
3131
export const OPEN_URL = true; // true, false
3232

3333
// IF YOU ENTERED A AMAZON PRODUCT
3434
// Separates the check between Amazon items by this value
35-
const AMAZON_DELAY = 25;
35+
const AMAZON_DELAY = 10;
3636

3737
// IF YOU ENTERED A TARGET PRODUCT
3838
// Enter your zip code to search for a Target closest to you
@@ -216,3 +216,75 @@ function main() {
216216
}
217217
});
218218
}
219+
220+
221+
export const USER_AGENTS = [
222+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",
223+
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2919.83 Safari/537.36",
224+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2866.71 Safari/537.36",
225+
"Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2820.59 Safari/537.36",
226+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2762.73 Safari/537.36",
227+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2656.18 Safari/537.36",
228+
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/44.0.2403.155 Safari/537.36",
229+
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
230+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36",
231+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",
232+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",
233+
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36",
234+
"Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36",
235+
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36",
236+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36",
237+
"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36",
238+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36",
239+
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36",
240+
"Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36",
241+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36",
242+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36",
243+
"Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36",
244+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36",
245+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36",
246+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2309.372 Safari/537.36",
247+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36",
248+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36",
249+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1866.237 Safari/537.36",
250+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/4E423F",
251+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582",
252+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19577",
253+
"Mozilla/5.0 (X11) AppleWebKit/62.41 (KHTML, like Gecko) Edge/17.10859 Safari/452.6",
254+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931",
255+
"Chrome (AppleWebKit/537.1; Chrome50.0; Windows NT 6.3) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
256+
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.9200",
257+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586",
258+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246",
259+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:77.0) Gecko/20190101 Firefox/77.0",
260+
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:77.0) Gecko/20100101 Firefox/77.0",
261+
"Mozilla/5.0 (X11; Linux ppc64le; rv:75.0) Gecko/20100101 Firefox/75.0",
262+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/75.0",
263+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:75.0) Gecko/20100101 Firefox/75.0",
264+
"Mozilla/5.0 (X11; Linux; rv:74.0) Gecko/20100101 Firefox/74.0",
265+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/73.0",
266+
"Mozilla/5.0 (X11; OpenBSD i386; rv:72.0) Gecko/20100101 Firefox/72.0",
267+
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:71.0) Gecko/20100101 Firefox/71.0",
268+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:70.0) Gecko/20191022 Firefox/70.0",
269+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:70.0) Gecko/20190101 Firefox/70.0",
270+
"Mozilla/5.0 (Windows; U; Windows NT 9.1; en-US; rv:12.9.1.11) Gecko/20100821 Firefox/70",
271+
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:69.2.1) Gecko/20100101 Firefox/69.2",
272+
"Mozilla/5.0 (Windows NT 6.1; rv:68.7) Gecko/20100101 Firefox/68.7",
273+
"Mozilla/5.0 (X11; Linux i686; rv:64.0) Gecko/20100101 Firefox/64.0",
274+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0",
275+
"Mozilla/5.0 (X11; Linux i586; rv:63.0) Gecko/20100101 Firefox/63.0",
276+
"Mozilla/5.0 (Windows NT 6.2; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0",
277+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:62.0) Gecko/20100101 Firefox/62.0",
278+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:10.0) Gecko/20100101 Firefox/62.0",
279+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.13; ko; rv:1.9.1b2) Gecko/20081201 Firefox/60.0",
280+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/58.0.1",
281+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/58.0",
282+
"Mozilla/5.0 (Windows NT 5.0; Windows NT 5.1; Windows NT 6.0; Windows NT 6.1; Linux; es-VE; rv:52.9.0) Gecko/20100101 Firefox/52.9.0",
283+
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.59.12) Gecko/20160044 Firefox/52.59.12",
284+
"Mozilla/5.0 (X11; Ubuntu i686; rv:52.0) Gecko/20100101 Firefox/52.0",
285+
"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:52.0) Gecko/20100101 Firefox/52.0",
286+
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20060814 Firefox/51.0",
287+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:62.0) Gecko/20100101 Firefox/49.0",
288+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20120121 Firefox/46.0",
289+
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.66.18) Gecko/20177177 Firefox/45.66.18",
290+
]

stores/amazon.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -23,7 +24,7 @@ export default async function amazon(url, interval, originalIntervalValue, first
2324
try {
2425
let res = await axios.get(url, {
2526
headers: {
26-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
27+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
2728
}
2829
}).catch(async function (error) {
2930
if (error.response.status == 503) console.error(moment().format('LTS') + ': ' +'Amazon 503 (service unavailable) Error. Changing interval rate for', url)

stores/antonline.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -25,7 +26,7 @@ export default async function antonline(url, interval) {
2526
try {
2627
let res = await axios.get(url, {
2728
headers: {
28-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
29+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
2930
}
3031
}).catch(async function (error) {
3132
if (error.response.status == 503) console.error('Ant Online 503 (service unavailable) Error. Interval possibly too low. Consider increasing interval rate.')

stores/argos.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -25,7 +26,7 @@ export default async function argos(url, interval) {
2526
try {
2627
let res = await axios.get(url, {
2728
headers: {
28-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
29+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
2930
}
3031
}).catch(async function (error) {
3132
if (error.response.status == 503) console.error('Argos 503 (service unavailable) Error. Interval possibly too low. Consider increasing interval rate.')

stores/bestbuy.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -25,7 +26,7 @@ export default async function bestbuy(url, interval) {
2526
try {
2627
let res = await axios.get(url, {
2728
headers: {
28-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
29+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
2930
}
3031
}).catch(async function (error) {
3132
if (error.response.status == 503) console.error('Best Buy 503 (service unavailable) Error. Interval possibly too low. Consider increasing interval rate.')

stores/costco.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -25,7 +26,7 @@ export default async function costco(url, interval) {
2526
try {
2627
let res = await axios.get(url, {
2728
headers: {
28-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
29+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
2930
}
3031
}).catch(async function (error) {
3132
if (error.response.status == 503) console.error('Costco 503 (service unavailable) Error. Interval possibly too low. Consider increasing interval rate.')

stores/microcenter.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -26,7 +27,7 @@ export default async function microcenter(url, interval) {
2627
try {
2728
let res = await axios.get(url, {
2829
headers: {
29-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
30+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
3031
}
3132
}).catch(async function (error) {
3233
if (error.response && error.response.status == 503) console.error(moment().format('LTS') + ': ' +'Microcenter 503 (service unavailable) Error. Changing interval rate for', url)

stores/newegg.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -25,7 +26,7 @@ export default async function newegg(url, interval) {
2526
try {
2627
let res = await axios.get(url, {
2728
headers: {
28-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
29+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
2930
}
3031
}).catch(async function (error) {
3132
if (error.response.status == 503) console.error('Newegg 503 (service unavailable) Error. Interval possibly too low. Consider increasing interval rate.')

stores/target.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL, TARGET_KEY, TARGET_ZIP_CODE } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import threeBeeps from "../beep.js"
45
import sendAlertToWebhooks from "../webhook.js"
56
import writeErrorToFile from "../writeToFile.js"
@@ -29,7 +30,7 @@ export default async function target(url, interval, key, zip_code) {
2930
try {
3031
let res = await axios.get(url, {
3132
headers: {
32-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
33+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
3334
}
3435
}).catch(async function (error) {
3536
if (error.response.status == 503) console.error('Target 503 (service unavailable) Error. Interval possibly too low. Consider increasing interval rate.')

stores/tesco.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fileURLToPath } from "url";
22
import { OPEN_URL } from '../main.js'
3+
import { USER_AGENTS } from '../main.js'
34
import fs from "fs";
45
import threeBeeps from "../beep.js"
56
import sendAlertToWebhooks from "../webhook.js"
@@ -73,7 +74,7 @@ async function tescoPS5Preorder(url, interval) {
7374
try {
7475
let res = await axios.get(url, {
7576
headers: {
76-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'
77+
'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
7778
}
7879
}).catch(async function (error) {
7980
writeErrorToFile('Tesco', error)

0 commit comments

Comments
 (0)