Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const request = require('request');
- const url = 'https://www.supremenewyork.com/mobile_stock.json';
- const url2 = 'https://www.supremenewyork.com/shop/';
- var retryInterval = 2000;
- var category = 'jackets';
- var keyword = 'GORE-TEX court jacket';
- var negativekeyword = 'leopard';
- var colour = 'black';
- var size = 'medium';
- var itemId;
- getDesiredId();
- function getDesiredId() {
- console.log('Fetching Stock...');
- var p = new Promise((resolve, reject) => {
- //Do something until promise is fullfilled (resolve) or not fullfilled (rejected)
- var options = {
- method: 'GET',
- url: url
- };
- request(options, (error, response, body) => {
- var data = JSON.parse(body.toLowerCase());
- var items;
- switch(category.toLowerCase()) {
- case 'jackets':
- items = data.products_and_categories.jackets;
- break;
- case 'shirts':
- items = data.products_and_categories.shirts;
- break;
- case 'tops/sweaters':
- items = data.products_and_categories.tops/sweaters;
- break;
- case 'sweatshirts':
- items = data.products_and_categories.sweatshirts;
- break;
- case 'pants':
- items = data.products_and_categories.pants;
- break;
- case 'shorts':
- items = data.products_and_categories.shorts;
- break;
- case 't-shirts':
- items = data.products_and_categories.t-shirts;
- break;
- case 'hats':
- items = data.products_and_categories.hats;
- break;
- case 'bags':
- items = data.products_and_categories.bags;
- break;
- case 'accessories':
- items = data.products_and_categories.accessories;
- break;
- case 'skate':
- items = data.products_and_categories.skate;
- break;
- case 'new':
- items = data.products_and_categories.new;
- break;
- }
- for(var i = 0; i < items.length; i++) {
- if(items[i].name.toLowerCase().includes(keyword.toLowerCase())
- && !items[i].name.toLowerCase().includes(negativekeyword.toLowerCase())) {
- console.log(items[i].name);
- console.log(items[i].id);
- itemId = items[i].id;
- }
- }
- if(itemId != null) {
- //item found, fullfill promise
- resolve('ITEM FOUND');
- } else {
- //item not found
- reject('ITEM NOT FOUND, RUNNING AGAIN');
- }
- });
- });
- p.then((message) => {
- console.log(message);
- var options = {
- method: 'GET',
- url: url2 + itemId + '.json'
- };
- request(options, (error, response, body) => {
- var data = JSON.parse(body.toLowerCase());
- data = data.styles;
- var colourId;
- var sizes;
- var sizeId;
- for(var i = 0; i < data.length; i++) {
- if(data[i].name.toLowerCase().includes(colour.toLowerCase())) {
- colourId = data[i].id;
- console.log(data[i].name);
- console.log(colourId);
- sizes = data[i].sizes;
- for(var j = 0; j < sizes.length; j++) {
- if(sizes[j].name.toLowerCase().includes(size.toLowerCase())){
- sizeId = sizes[j].id;
- console.log(sizeId);
- }
- }
- }
- }
- addToCart(sizeId, colourId);
- });
- }).catch((message) => {
- console.log(message);
- setTimeout(getDesiredId, retryInterval);
- });
- }
- function addToCart(sizeId, colourId) {
- console.log('adding to cart...');
- var cookie;
- var p = new Promise((resolve, reject) => {
- console.log('https://supremenewyork.com/shop/' + itemId + '/add.json');
- console.log('s: ' + sizeId.toString());
- console.log('st: ' + colourId.toString());
- var options = {
- method: 'POST',
- url: 'https://www.supremenewyork.com/shop/' + itemId + '/add.json',
- qs: {
- 's': sizeId.toString(),
- 'st': colourId.toString(),
- 'qty': 1
- },
- headers: {
- 'Cache-Control': 'no-cache',
- 'Connection': 'keep-alive',
- 'content-length': '',
- 'accept-encoding': 'gzip, deflate',
- 'Host': 'www.supremenewyork.com',
- 'Accept' : '*/*',
- 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14E277 Safari/602.1',
- 'Content-Type': 'application/x-www-form-urlencoded' },
- form: false };
- request(options, (error, response, body) => {
- for(var i = 0; i < response.rawHeaders.length; i++) {
- if(response.rawHeaders[i] == 'Set-Cookie' && response.rawHeaders[i+1].includes('_supreme_sess')) {
- cookie = response.rawHeaders[i];
- }
- }
- console.log(body);
- /*
- if(body == '[{"size_id":"' + sizeId + '","in_stock":true}]') {
- resolve('Added To Cart');
- } else if(body == '[]') {
- reject('Out Of Stock. Retrying...');
- }
- */
- });
- });
- p.then((message) => {
- console.log(message);
- }).catch((message) => {
- console.log(message);
- //setTimeout(addToCart, retryInterval);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement