Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //屠龙0.0.1
- var keyWord = '+boxer briefs';
- var categories = ["Jackets", "Coats", "Shirts", "Tops/Sweaters", "Sweatshirts", "Pants", "Shorts", "T-Shirts", "Hats", "Bags", "Accessories", "Shoes", "Skate"]
- // 0 -> "Jackets", 1 -> "Coats", 2-> "Shirts", 3 -> "Tops/Sweaters", 4 ->"Sweatshirts", 5->"Pants", 6->"Shorts", 7->"T-Shirts",
- //8-> "Hats", 9->"Bags", 10->"Accessories", 11->"Shoes", 12->"Skate"
- var category = categories[10];
- var preferredSize = 'large'
- var preferColor = 'white';
- var autoCheckout = false;
- var checkout_delay = 2500;
- //Address info
- var billing_name = "Viktor Tatarov";
- var order_email = "waterpolista3@abv.bg";
- var order_tel = "0878250091";
- var order_address = "Nishava 35";
- var order_billing_address_2 = "Apt3";
- var order_billing_zip = "1680";
- var order_billing_city = "Sofia";
- var order_billing_state = "Sofia";
- var order_billing_country = "BG"
- //<option value="BG">Bulgaria</option>
- //Payment info
- var credit_card_type = "master";
- // 欧洲:visa, american_express, master, solo
- // 日本:visa, american_express, master, jcb, cod
- var cnb = "1111111111111111";
- var month = "11";
- var year = "1111";
- var vval = "111";
- var startTime = null;
- var respondJSON = null;
- var isNew = true;
- var mobile_stock_api = "https://www.supremenewyork.com/mobile_stock.json";
- var event = document.createEvent('Event');
- event.initEvent('change', true, true);
- var retryFetch = async (url, options=null, retry=0) => {
- if (retry >= 4) return Promise.resolve(1);
- let res = await fetch(url, options);
- if (res.status !== 200) {
- await sleep(Math.min(retry * 500, 2 * 1000));
- return await retryFetch(url, options, retry + 1);
- } else {
- return await res.json();
- }
- };
- function matchKeyWord (itemName, keyWords) {
- let name = itemName.toLowerCase().trim();
- let keyWordsList = keyWords.toLowerCase().split(",");
- for (let i = 0; i < keyWordsList.length; i ++) {
- let word = keyWordsList[i].trim();
- if ((word.includes('+') && !name.includes(word.substr(1))) ||
- (word.includes('-') && name.includes(word.substr(1)))) {
- return false;
- }
- }
- return true;
- };
- var sleep = (ms) => {
- return new Promise(resolve => setTimeout(resolve, ms));
- };
- async function mobileAPIRefreshed(respond) {
- if (respond['products_and_categories'] == null || respond['products_and_categories']['new'] == null) {
- return false;
- }
- let newProducts = respond['products_and_categories']['new'];
- for (let index = 0; index < newProducts.length; index ++) {
- let item =newProducts[index];
- if (item != null && item['name'] != null && matchKeyWord(item['name'], keyWord)) {
- isNew = true;
- return true;
- }
- }
- let categoryProduct = respond['products_and_categories'][category];
- if (categoryProduct != undefined) {
- for (let index = 0; index < categoryProduct.length; index ++) {
- let item =categoryProduct[index];
- if (item != null && item['name'] != null && matchKeyWord(item['name'], keyWord)) {
- isNew = false;
- return true;
- }
- }
- }
- return false;
- }
- async function monitor() {
- refreshed = false;
- let respond = await retryFetch(mobile_stock_api);
- refreshed = respond == null ? false : await mobileAPIRefreshed(respond);
- if (refreshed) {
- respondJSON = respond;
- startTime = new Date();
- console.log("Detect Page refreshed with mobile endpoint at: " + startTime.toISOString());
- window.location.href = isNew? 'https://www.supremenewyork.com/mobile/#categories/new' : ('https://www.supremenewyork.com/mobile/#categories/' + category);
- sleep(150).then(() => start());
- } else {
- console.log("Not refreshed, retrying ...")
- await sleep(1000);
- await monitor();
- }
- }
- var start = () => {
- var items = document.getElementsByClassName("name");
- if (items.length > 0) {
- for (item of items) {
- var name = item.innerHTML;
- if (matchKeyWord(name, keyWord)) {
- startTime = new Date().getTime();
- sleep(200).then(() => item.click());
- break;
- }
- }
- (function waitTillArticlePageIsOpen() {
- let atcBtn = document.getElementsByClassName("cart-button")[0];
- // check if article page has loaded by looking at main image
- if (atcBtn) {
- addToCart();
- } else
- setTimeout(function(){ waitTillArticlePageIsOpen(); }, 150);
- return;
- })();
- } else {
- setTimeout(function(){ start(); }, 150);
- }
- }
- async function addToCart(){
- if (document.getElementById('cart-update').children[0].innerHTML === "remove") {
- checkout();
- return;
- }
- await chooseColor();
- await sleep(200);
- chooseSize();
- await sleep(200);
- let atcBtn = document.getElementsByClassName("c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement