Скрипты на JavaScript для Алиэкспресс

Тема закреплена бессрочно

Пользуетесь ли этими скриптами?

  • Да

    Голосов: 290 64,6%
  • Нет

    Голосов: 159 35,4%

  • Всего проголосовало
    449
Там два скипта. Какой из них? И что не работает?
Смена языка и валюты, работал без проблем месяц, вчера перестал работать - думал глюк, сегодня так же не работает. Причем валюту меняет, а страну и язык нет.
У меня стояла Россия и валюта рубли, а щас к примеру ИП из Испании и у меня валюта рубли, а сайт на испанском.
 
Я "доработал" с быстрым выбором страны 1607612255003.png закинул в трех вариантах. Возможно ли добавить код в скрипт чтоб менял значение в той же куке alimid=4 вручную менять его когда курсор дергается это лютый ад :jackie:
 
Я "доработал" с быстрым выбором страны Посмотреть вложение 228500 закинул в трех вариантах. Возможно ли добавить код в скрипт чтоб менял значение в той же куке alimid=4 вручную менять его когда курсор дергается это лютый ад :jackie:
Можешь поделиться рабочим вариантом?
 
Переписал скрипт изменения страны и валюты на алиэкспресс, сделал его универсальным для любых куков, нужно их прописать в объекте.

Ссылка на гитхаб
---------Двойное сообщение соединено: ---------
Я "доработал" с быстрым выбором страны Посмотреть вложение 228500 закинул в трех вариантах. Возможно ли добавить код в скрипт чтоб менял значение в той же куке alimid=4 вручную менять его когда курсор дергается это лютый ад :jackie:
Нужно раскомментировать
Код:
    const cookieSettings = {
        'aep_usuc_f': {
            'region':   myCountry,
            'c_tp':     myCurrency,
            'alimid':    '2'
        }
    }
---------Двойное сообщение соединено: ---------
Смена языка и валюты, работал без проблем месяц, вчера перестал работать - думал глюк, сегодня так же не работает. Причем валюту меняет, а страну и язык нет.
У меня стояла Россия и валюта рубли, а щас к примеру ИП из Испании и у меня валюта рубли, а сайт на испанском.
Язык скрипт не меняет, потому что али сам выбирает язык в зависимости от сайта и ИП-адреса.
 
Что "alimid" делает?
 
Переписал скрипт изменения страны и валюты на алиэкспресс, сделал его универсальным для любых куков, нужно их прописать в объекте.
Кнопки возможно сделать чтоб при нажатии переключались значения let myCurrency, let myCountry?
---------Двойное сообщение соединено: ---------
Что "alimid" делает?
хз, иногда конверт открывается после изменения если до этого не открывался
---------Двойное сообщение соединено: ---------
Переписал скрипт изменения страны и валюты на алиэкспресс, сделал его универсальным для любых куков, нужно их прописать в объекте.
Для неграмотных таких как я надо комментарий к каждой запятой оставлять, я только сейчас допер почему alimid не работает, что там еще выключатели надо переставлять а не просто цифру на нужную поменять, для большинства код выглядит как стихотворение на китайской мове.
---------Двойное сообщение соединено: ---------
Скрипт переключения валюты в КОРЗИНЕ. Появляются две кнопки - USD и RUB - переключают на соответствующую валюту. Также в скрипте осталось изменение страны. Если указать стану пустую строку "", то страна меняться не будет. Если указать страну, например KZ, то страна будет меняться на указанную.

Код:
// ==UserScript==
// @name         Aliexpress in Cart Currency Changer
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Изменяет валюту в корзине
// @author       Andronio
// @match        https://shoppingcart.aliexpress.ru/shopcart/shopcartDetail.htm*
// @match        https://shoppingcart.aliexpress.com/shopcart/shopcartDetail.htm*
// @grant        none
// ==/UserScript==

let myCountry = "";

(function repeat() {
    'use strict';
    let cart = document.querySelector(".captain h2");
    if (!cart) return setTimeout(repeat, 200);
    let btnBox = document.createElement("div");
    btnBox.id = "btn-box";
    btnBox.style.display = "inline-block";
    cart.style.display = "inline-block";
    cart.after(btnBox);
    btnBox.innerHTML = `<div class="currency-button" data-curr="USD"><span class="css_flag css_us" style="display:inline"><span class="shipping-text" style="display:inline">USD</span></span></div>
                        <div class="currency-button" data-curr="RUB"><span class="css_flag css_ru" style="display:inline"><span class="shipping-text" style="display:inline">RUB</span></span></div>`;
    let style = document.createElement("style");
    style.innerHTML = `.currency-button {
                            display: inline-block;
                            padding: 5px 10px;
                            margin-left: 20px;
                            border: 2px solid black;
                            border-radius: 0.5em;
                            cursor:pointer;
                        }

                        .no-modify-btn {background-color: OrangeRed;}

                        .yes-modify-btn {background-color: Lime;}
                            `;
    document.head.append(style);
    btnBox.addEventListener("click", btnClickHandler);
})();



function btnClickHandler(event) {
    'use strict';

    let btn = event.target.closest(".currency-button");
    if (!btn) return;
    let currency = btn.dataset.curr;
    let cookies = document.cookie.split('; ');
    let isNeedModif = false;
    let str;
    for (let i = 0; i < cookies.length; i++) {
        if (cookies[i].startsWith("aep_usuc_f=")) { // Если нашел нужную куку
            let cookie = cookies[i].slice(11).split('&'); // Убираем aep_usuc_f= и разделяем
            cookie = cookie.map(elem => { // Смотрим, что в куке
                if (elem.startsWith("c_tp=")) {
                    if (elem.slice(5) == currency)
                        return elem;
                    else {
                    isNeedModif = true;
                    return "c_tp=" + currency;
                    }
                } else if (elem.startsWith("region=")) {
                    let currCountry = elem.slice(7);
                    if (myCountry == "")
                        return elem;
                    else if (currCountry == myCountry)
                        return elem
                    else {
                        isNeedModif = true;
                        return "region=" + myCountry;
                    }

                } else return elem;
            });
            str = cookie.join("&");
            break;
        }
    }
    if (isNeedModif) {
        if (window.location.hostname.includes("aliexpress.ru")) {
            let str2 = `aep_usuc_f=${str}; path=/; expires=Tue, 19 Jan 2088 03:14:07 GMT; domain=.aliexpress.ru`;
            document.cookie = str2;
            window.location.reload();
        } else if (window.location.hostname.includes("aliexpress.com")) {
            let str2 = `aep_usuc_f=${str}; path=/; expires=Tue, 19 Jan 2088 03:14:07 GMT; domain=.aliexpress.com`;
            document.cookie = str2;
            window.location.reload();
        } else {alert("Ошибка в скрипте")};
        window.mybtn = btn;
        window.mybtn.classList.add("yes-modify-btn");
        setTimeout(() => window.mybtn.classList.remove("yes-modify-btn"), 300);
        window.location.reload();
    } else {
        window.mybtn = btn;
        window.mybtn.classList.add("no-modify-btn");
        setTimeout(() => window.mybtn.classList.remove("no-modify-btn"), 300);
    }
}
Переделал под собственные нужды 1607876596351.png ,третью кнопку добавить не осилил, в идеале все эти скрипты нужно собрать в один с тремя кнопками стран (своя, сша(для игр), и транзит(страна с досылом), и тремя кнопками валют (рубли (для финта),usd, евро(чтоб уменьшить доплату))
 
Последнее редактирование:
Установил, работает. Автору респект.
 
  • Like
Реакции: wwffff
---------Двойное сообщение соединено: ---------
Кнопки возможно сделать чтоб при нажатии переключались значения let myCurrency, let myCountry?
---------Двойное сообщение соединено: ---------

хз, иногда конверт открывается после изменения если до этого не открывался
---------Двойное сообщение соединено: ---------

Для неграмотных таких как я надо комментарий к каждой запятой оставлять, я только сейчас допер почему alimid не работает, что там еще выключатели надо переставлять а не просто цифру на нужную поменять, для большинства код выглядит как стихотворение на китайской мове.
---------Двойное сообщение соединено: ---------

Переделал под собственные нужды Посмотреть вложение 229693,третью кнопку добавить не осилил, в идеале все эти скрипты нужно собрать в один с тремя кнопками стран (своя, сша(для игр), и транзит(страна с досылом), и тремя кнопками валют (рубли (для финта),usd, евро(чтоб уменьшить доплату))
Да, хорошо бы комментарий к каждой запятой оставлять. Читаешь, пытаешься понять, а потом угасаешь от своей безграмотности(
---------Двойное сообщение соединено: ---------
Обновлённый скрипт для авторизации на Скидка.ру

Баги или пожелания по скрипту в лс.
p.s. код не смотреть, сделано лишь бы работало.

JavaScript:
// ==UserScript==
// @name         Skidka - auth.
// @namespace    http://tampermonkey.net/
// @version      0.2
// @author       Dimokin
// @match        https://skidka.ru
// @match        https://skidka.ru/user/auth/
// @match        https://skidka.ru/shops/details/aliexpress-keshbek/
// @match        https://skidka.ru/user/goto/72/
// @grant        none
// @require http://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==
(function() {
    'use strict';

    var $ = window.jQuery;

    var MY_MAIL = 'ПОЧТА';
    var MY_PASSWORD = 'ПАРОЛЬ';

    $(document).ready(function() {
        setTimeout(function() {
            if (window.location.href === 'https://skidka.ru/') {
                window.location.href = 'https://skidka.ru/user/goto/72/';
            } else if (window.location.href === 'https://skidka.ru/user/goto/72/') {
                setTimeout(function() {
                    if ($('.goto-not-logged__buttons').length) {
                        window.location.href = $('.goto-not-logged__buttons a').attr('href');
                    }
                }, 1000);
            } else {
                let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;

                setTimeout(function() {
                    let login = document.querySelector('.auth__phone-input input');
                    let pass = document.querySelector('.pass-input  input');

                    nativeInputValueSetter.call(login, MY_MAIL);

                    login.dispatchEvent(new Event('change', {
                        bubbles: true
                    }));
                    login.dispatchEvent(new Event('input', {
                        bubbles: true
                    }));

                    nativeInputValueSetter.call(pass, MY_PASSWORD);

                    pass.dispatchEvent(new Event('change', {
                        bubbles: true
                    }));
                    pass.dispatchEvent(new Event('input', {
                        bubbles: true
                    }));

                    setTimeout(function() {
                        $(".auth__buttons button").trigger('click');

                        setTimeout(function() {
                            window.location.reload();
                        }, 1000);
                    }, 1000);
                }, 1000);
            }
        }, 1000);
    });
})();
Долго этого ждала
 
Последнее редактирование:
  • Like
Реакции: Nywby и Dimokin
Немного подправить нужно:
Код:
var allOblast = document.querySelectorAll('.next-overlay-wrapper .next-menu-item');

var allGorod = document.querySelectorAll('.next-overlay-wrapper .next-menu-item');

document.querySelectorAll('.save button')[0].click();

Обновил скрипт заполнения адреса. Теперь страну нужно указывать полностью: Kazakhstan.
Если скрипт неправильно работает, то пробуем увеличить задержку в переменной delayStep
Старую версию пока не стал удалять, может у кого она пока есть. Берите файл Aliexpress address filler2.user.js
Вместе скрипты работать не будут, либо первый, либо второй.
Ссылка на гитхаб
 
Немного подправить нужно:
Код:
var allOblast = document.querySelectorAll('.next-overlay-wrapper .next-menu-item');

var allGorod = document.querySelectorAll('.next-overlay-wrapper .next-menu-item');

document.querySelectorAll('.save button')[0].click();
Ничего не понятно. Зачем нужно? Где нужно?
 
  • Like
Реакции: Pitomec и AlinaK