-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
asus.ts
89 lines (86 loc) 路 2.09 KB
/
asus.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import {Store} from './store';
import fetch from 'node-fetch';
export const Asus: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
inStock: {
container: '#item_add_cart',
text: ['add to cart']
}
},
links: [
{
brand: 'test:brand',
itemNumber: '202007AM020000005',
model: 'test:model',
series: 'test:series',
url: 'https://store.asus.com/us/item/202007AM020000005'
},
{
brand: 'asus',
itemNumber: '202009AM160000001',
model: 'tuf oc',
series: '3080',
url: 'https://store.asus.com/us/item/202009AM160000001'
},
{
brand: 'asus',
itemNumber: '202009AM150000004',
model: 'tuf',
series: '3080',
url: 'https://store.asus.com/us/item/202009AM150000004'
},
{
brand: 'asus',
itemNumber: '202009AM150000003',
model: 'tuf',
series: '3090',
url: 'https://store.asus.com/us/item/202009AM150000003'
},
{
brand: 'asus',
itemNumber: '202009AM150000001',
model: 'tuf oc',
series: '3090',
url: 'https://store.asus.com/us/item/202009AM150000001'
},
{
brand: 'asus',
itemNumber: '202009AM290000002',
model: 'strix oc',
series: '3080',
url: 'https://store.asus.com/us/item/202009AM290000002'
},
{
brand: 'asus',
itemNumber: '202011AM200000003',
model: 'crosshair viii',
series: 'darkhero',
url: 'https://store.asus.com/us/item/202011AM200000003'
}
],
name: 'asus',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url =
'https://store.asus.com/us/category/get_real_time_data';
const response = await fetch(request_url, {
body: 'sm_seq_list%5B%5D=' + itemNumber,
headers: {
'accept-language': 'en-US,en;q=0.9',
'cache-control': 'no-cache',
'content-type':
'application/x-www-form-urlencoded; charset=UTF-8'
},
method: 'POST'
});
const response_json = await response.json();
if (response_json.data[itemNumber] !== undefined) {
const item_info = response_json.data[itemNumber].market_info;
if (item_info.buy === true || item_info.quantity > 0) {
return true;
}
}
return false;
},
successStatusCodes: [[0, 399], 404]
};