From d1e260c06aa4ca1d27d5b191f76f1d4072713075 Mon Sep 17 00:00:00 2001 From: Przemek Grondek Date: Sun, 19 Mar 2023 01:03:46 +0100 Subject: [PATCH] Add force-aliexpress script to automatically change language/region/locale/currency --- force-aliexpress.js | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 force-aliexpress.js diff --git a/force-aliexpress.js b/force-aliexpress.js new file mode 100644 index 0000000..91c8920 --- /dev/null +++ b/force-aliexpress.js @@ -0,0 +1,60 @@ +// ==UserScript== +// @name Force aliexpress settings. +// @namespace http://tampermonkey.net/ +// @version 0.1 +// @description When visiting aliexpress it's likes to change user settings based on user data (probably ip/accept-language header) with item listings poorly translated to local language. This script overrides locale, currency, region, and site then after 1s redirects to global site. Based on work of Зальотне дитя мемарні 🇺🇦✌️ +// @author Зальотне дитя мемарні 🇺🇦✌️ +// @author Przemek Grondek +// @match *://*.aliexpress.com/* +// @license MIT +// @icon https://www.google.com/s2/favicons?sz=64&domain=aliexpress.com +// ==/UserScript== + +const FORCE_SITE = 'glo' +const FORCE_REGION = 'PL' +const FORCE_LOCALE = 'en_US' +const FORCE_CURRENCY = 'PLN' + +let refreshNeeded = false; +let newLocation = window.location.href; + +function getCookie(cName) { + const match = document.cookie.match(new RegExp('(^| )' + cName + '=([^;]+)')); + if (match) { + return match[2]; + } else { + return ''; + } +} + +function setCookie(cName, cValue, expDays) { + let date = new Date(); + date.setTime(date.getTime() + (expDays * 24 * 60 * 60 * 1000)); + const expires = `expires=${date.toUTCString()}`; + document.cookie = `${cName}=${cValue}; ${expires}; path=/`; +} + +const cookie = getCookie('aep_usuc_f'); +const isCookieOkay = (cookie.includes(`site=${FORCE_SITE}`) + && cookie.includes(`region=${FORCE_REGION}`) + && cookie.includes(`b_locale=${FORCE_LOCALE}`) + && cookie.includes(`c_tp=${FORCE_CURRENCY}`) +); + +if (!isCookieOkay) { + const newCookie = `site=${FORCE_SITE}&c_tp=${FORCE_CURRENCY}®ion=${FORCE_REGION}&b_locale=${FORCE_LOCALE}`; + setCookie('aep_usuc_f', newCookie, 9999); + refreshNeeded = true; +} + +if (!window.location.href.includes('www.aliexpress.com') && !window.location.href.includes('wp.aliexpress.com')) { + window.stop(); + const oldLocation = window.location.href; + newLocation = oldLocation.replace(/gatewayAdapt=glo2[a-z]+/, '') + .replace(/[^\/]*\.aliexpress.com/g,'www.aliexpress.com') + refreshNeeded = true; +} + +if (refreshNeeded) { + setTimeout(function() {window.location = newLocation;} , 1000); +} \ No newline at end of file