// ==UserScript== // @name Aliexpress Warehouse Changer // @namespace // @version 0.2 // @description Let's you choose warehowse! // @author You // @match *://*.aliexpress.com/wholesale* // @match *://*.aliexpress.com/category* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/437566/Aliexpress%20Warehouse%20Changer.user.js // @updateURL https://update.greasyfork.icu/scripts/437566/Aliexpress%20Warehouse%20Changer.meta.js // ==/UserScript== /*global $*/ /*jshint esversion: 8 */ (function() { 'use strict'; //var $; // Your code here... (async () => { await import('https://code.jquery.com/jquery-2.2.4.min.js') // Library ready //console.log($('.nav-breadcrumb')); //$( 'From Poland - From Checz' ).insertBefore( ".nav-breadcrumb" ); $([ 'x Clear', 'Poland', 'Checz' , 'China' , 'Russia' , 'Spain', 'France', 'USA' ].join(' - ')).insertBefore( ".nav-breadcrumb" ); $('._xawcx_whs').click(function(){ var whs = $(this).attr('data-warehouse'); localStorage.setItem('whs', whs); //console.log($(this)); window.location.href = window.location.href + '&shipFromCountry=' + whs; }); $('._xawcx_whs_clr').click(function(){ localStorage.removeItem('whs'); //console.log($(this)); window.location.href = window.location.href + '&shipFromCountry='; }); var getAllUrlParams = (url) => { // get query string from url (optional) or window var queryString = url ? url.split('?')[1] : window.location.search.slice(1); // we'll store the parameters here var obj = {}; // if query string exists if (queryString) { // stuff after # is not part of query string, so get rid of it queryString = queryString.split('#')[0]; // split our query string into its component parts var arr = queryString.split('&'); for (var i = 0; i < arr.length; i++) { // separate the keys and the values var a = arr[i].split('='); // set parameter name and value (use 'true' if empty) var paramName = a[0]; var paramValue = typeof (a[1]) === 'undefined' ? true : a[1]; // (optional) keep case consistent //paramName = paramName.toLowerCase(); //if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase(); // if the paramName ends with square brackets, e.g. colors[] or colors[2] if (paramName.match(/\[(\d+)?\]$/)) { // create key if it doesn't exist var key = paramName.replace(/\[(\d+)?\]/, ''); if (!obj[key]) obj[key] = []; // if it's an indexed array e.g. colors[2] if (paramName.match(/\[\d+\]$/)) { // get the index value and add the entry at the appropriate position var index = /\[(\d+)\]/.exec(paramName)[1]; obj[key][index] = paramValue; } else { // otherwise add the value to the end of the array obj[key].push(paramValue); } } else { // we're dealing with a string if (!obj[paramName]) { // if it doesn't exist, create property obj[paramName] = paramValue; } else if (obj[paramName] && typeof obj[paramName] === 'string'){ // if property does exist and it's a string, convert it to an array obj[paramName] = [obj[paramName]]; obj[paramName].push(paramValue); } else { // otherwise add the property obj[paramName].push(paramValue); } } } } return obj; } console.log('getAllUrlParams', getAllUrlParams().shipFromCountry, typeof(getAllUrlParams().shipFromCountry)); if((localStorage.getItem('whs') || '').length > 0 && typeof(getAllUrlParams().shipFromCountry) == 'undefined'){ window.location.href = window.location.href + '&shipFromCountry=' + localStorage.getItem('whs'); console.log('ADD URL WHS'); }else{ console.log('DO NOT ADD URL WHS'); } // regular check if page changed setInterval(() => { if((localStorage.getItem('whs') || '').length > 0 && typeof(getAllUrlParams().shipFromCountry) == 'undefined'){ window.location.href = window.location.href + '&shipFromCountry=' + localStorage.getItem('whs'); console.log('ADD URL WHS'); } }, 1000); })(); })();