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

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

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

  • Да

    Голосов: 294 63,9%
  • Нет

    Голосов: 166 36,1%

  • Всего проголосовало
    460

Andronio

Король флуда
Дней с нами
2.539
Розыгрыши
0
Сообщения
771
Репутация
77
Реакции
3.120
Приветствую!
Накопилось уже много скриптов для Алиэкспресс, в нескольких вариантах, и все разбросаны по теме. Решил собрать скрипты в одной теме и держать в шапке актуальные версии.
Скрипты расположены в порядке действия, т.е. сначала логин, в конце данные с готового заказа.

Как устанавливать скрипты?

Скрипт быстрого входа с решением слайдера и капчи
Скрипт быстого входа <<<--- Одинаковый пароль на всех акках --->>>
Скрипт быстрой регистрации по рефф-сслылке друга
Скрипт быстрого заполнения адресных данных <<<--- Описание --->>>
Скрипт заполняет случайными данными адрес США для игры пистолет
Скрипт быстрого доведения до оплаты вебманями/Яндекс.деньгами из списка заказов
Скрипт быстрой оплаты на WebMoney через E-NUM
Скрипт быстрой оплаты на WebMoney с авторизацией через Яндекс
Скрипт быстрого заполнения данных платежной карты
Скрипт получения информации из заказа и трека
Скрипт быстрого заполнения профиля для смены страны для игры
Скрипт автонажатия кнопки на игре "пуск"
Скрипт автоматически меняет на Алиэкспресс страну доставки и валюту (новая версия)
Скрипт автоматически меняет на Алиэкспресс страну доставки и валюту (старая версия)
Скрипт удаляет Еву в списке заказов
Скрипт получения списка заказов для BAS
Скрипт скрытия плохих сообщений с картинками на Miped.ru
Скрипт переключения валюты в КОРЗИНЕ
Скрипт для форума Miped.ru, добавляет курс купона на экран вверху
Скрипт авторизации на cash4brands
Скрипт авторизации на bonus.webmoney.ru
Скрипт авторизации на bonus.webmoney.ru через Яндекс
Скрипт переключения валюты и устанвки страны на всем Алиэкспресс
Скрипт проверки конечной цены перед оформлением
Скрипт для получения инфо о товаре для составления списка
Скрипт показывает только залайканые сообщения на Miped.ru

Скрипты от future_:
Скрипт для удобного поиска добивки и др.

Скрипты от readdead01:
Скрипт оплаты Яндекс.Деньгами на Алиэкспресс

Скрипты от Dimokin:
Скрипт автоматического входа на Скидка.ру
Скрипт для отображения списка вариантов товара с сортировкой по цене

Скрипты от 0xFF:
Скрипт заполнения адресных данных по шаблону (можно настроить неограничено количество стран)
Скрипт для заполнения данных карты
Скрипт входа на Алиэкпресс со вставкой логина-пароля
Скрипт для проверки аффилиатности товаров
Мипедовские отзывы о продавцах на страницах AliExpress (отдельная тема)
Нажатие touch для браузера
Скрипт подмены Али ассистента (не актуально)

Скрипты от silver63rus
Скрипт убирает мусор из URL

Скрипты от Sky
Скрипт автоматического логина и, при верке, доведение до ввода номера
 
Последнее редактирование:


Если логин-пароль хранится в экселе в соседних ячейках, то для входа на алиэкспресс (login.aliexpress.com) достаточно в экселе скопировать две соседние ячейки и сделать ctrl+v -> enter (или кнопка). Получается одно действие вместо двух.
Cкрипт, понимает логин-пароль с двоеточием и табуляцией, понимает email вида abc@xyz.mail.ua
Для ВХОДА вставить логин-пароль и нажать Enter СЛЕВА (большая кнопка в виде перевернутой буквы Г).
Для РЕГИСТРАЦИИ вставить логин-пароль и нажать Enter СПРАВА на дополнительной цифровой клавиатуре, либо shift+Enter (большая кнопка в виде перевернутой буквы Г) - для ноутбуков, где нет цифровой клавиатуры.
Также работают экранные кнопки под полем ввода.

Код:
// ==UserScript==
// @name         Aliexpress Register/Login
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  try to take over the world!
// @author       Andronio
// @match        https://login.aliexpress.com/*
// @match        https://login.aliexpress.ru/*
// @grant        none

// ==/UserScript==

(function() {
    'use strict';

    var div = document.createElement('div');
    div.className = 'myBox';

    div.innerHTML += `
    <input type="text" id="namepass"></br>
    <input type="button" id="rega" class="mybutton" value="Рега">
    <input type="button" id="vhod" class="mybutton" value="Вход">
    `;

// Стили
    var styles = `
    .myBox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }

    .mybutton {
    display: inline;
    padding: 5px 10px;
    margin-right:auto;
    cursor:pointer;
    }`

    var styleSheet = document.createElement("style")
    styleSheet.type = "text/css"
    styleSheet.innerText = styles
    document.head.append(styleSheet)
    document.body.append(div);

    let mybutton1 = document.getElementById("rega");
    let mybutton2 = document.getElementById("vhod");
    mybutton1.addEventListener('click', regaFunc);
    mybutton2.addEventListener('click', vhodFunc);
    let mytext = document.getElementById("namepass");
    mytext.addEventListener('keydown', event => {
        if (event.keyCode == "13") {
            if (event.code == "Enter" && !event.shiftKey) document.getElementById('vhod').click();
            if (event.code == "NumpadEnter" || event.code == "Enter" && event.shiftKey)  document.getElementById('rega').click();
        }
    });
    mytext.focus();
})();

// Функция регистрации
function regaFunc () {
    let namepass = document.getElementById("namepass");
    let mass;

    mass = parseString(namepass.value);
    if (mass) {
        document.querySelectorAll(".next-tabs-tab")[0].click();
        let email = document.querySelector(".email");
        let pass = document.querySelector(".password");
        email.setAttribute("value", mass[0]);
        email.dispatchEvent(new Event("change", {bubbles: true}));
        email.dispatchEvent(new Event("blur", {bubbles: true}));

        let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
        nativeInputValueSetter.call(pass, mass[1]);
        pass.dispatchEvent(new Event('change', {bubbles: true}));
        pass.dispatchEvent(new Event('blur', {bubbles: true}));
        setTimeout(waitReady, 200);
    } else alert("Нет логина");
}


// Ждем проверки email при реге
let timeout = 50;
function waitReady() {
    if (document.querySelector(".email-checking")) {
        if (--timeout) return setTimeout(waitReady, 200);
        else return;
    }
    document.querySelector(".submit").click();
}

// Функция входа
function vhodFunc () {
    let namepass = document.getElementById("namepass");
    let mass;

    mass = parseString(namepass.value);
    if (mass) {
        document.querySelectorAll(".next-tabs-tab")[1].click();
        let signName = document.getElementById("fm-login-id");
        let signPass = document.getElementById("fm-login-password");
        let enterButton = document.querySelector(".fm-button.fm-submit.password-login");
        signPass.value = mass[1];
        signName.value = mass[0];
        enterButton.click();
    } else alert("Нет логина");
}

function parseString(str) {
    if (str == "") return null;
    if (/\w+@[\w\.]+\.\w+\t\w+/.test(str)) {
        return str.split('\t');
    } else if (/\w+@[\w\.]+\.\w+:\w+/.test(str)) {
        return str.split(':');
    } else return null;
}
---------Двойное сообщение соединено: ---------
Скрипт для автоматической регистрации на Алиэкспресс по пришлашению/промо-коду.
Cкрипт понимает логин-пароль с двоеточием и табуляцией, понимает email вида abc@xyz.mail.ua
скрипт запускается на --Ссылка удалена--, предназначен для быстрого забивания логина и пароля при реферральной реге друга.

Код:
// ==UserScript==
// @name         Aliexpress Referral autoreg
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Andronio
// @match        https://sale.aliexpress.com/__pc/referral_register_success.htm*
// @grant        none
// @noframes
// ==/UserScript==

let timeout = 50;

(function() {
    'use strict';

    var div = document.createElement('div');
    div.className = 'myBox';

    div.innerHTML += `
    <input type="text" id="namepass"></br>
    <input type="button" id="rega" class="mybutton" value="Рега">
    `;

// Стили
    var styles = `
    .myBox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }

    .mybutton {
    display: inline;
    padding: 5px 10px;
    margin-right:auto;
    cursor:pointer;
    }`

    var styleSheet = document.createElement("style")
    styleSheet.type = "text/css"
    styleSheet.innerText = styles
    document.head.append(styleSheet)
    document.body.append(div);

    let mybutton2 = document.getElementById("rega");
    mybutton2.addEventListener('click', regaFunc);
    let mytext = document.getElementById("namepass");
    mytext.addEventListener('keydown', event => {
        if (event.keyCode == "13") {
            document.getElementById('rega').click();
        }
    });
    mytext.focus();
    btnRega();
})();

function btnRega() {
    'use strict';
    let btn = document.querySelector(".claimbtn");
    if (!btn) {
        if (--timeout) return setTimeout(btnRega, 200);
        else return;
    }
    timeout = 50;
    btn.click();
    setMyFocus();
}

function setMyFocus(){
    'use strict';
    if (!document.getElementById("ws-xman-register-email") || !document.getElementById("ws-xman-register-password")) {
        document.getElementById("namepass").focus();
        if (--timeout) return setTimeout(setMyFocus, 200);
        else return;
    }
    document.getElementById("namepass").focus();
}

function regaFunc() {
    let signName    = document.getElementById("ws-xman-register-email");
    let signPass    = document.getElementById("ws-xman-register-password");
    let namepass    = document.getElementById("namepass");
    let mass;

    if (namepass.value == "") return alert("Нет логина");
    if (/\w+@[\w\.]+\.\w+\t\w+/.test(namepass.value)) {
        mass = namepass.value.split('\t');
    } else if (/\w+@[\w\.]+\.\w+:\w+/.test(namepass.value)) {
        mass = namepass.value.split(':');
    } else {
        return alert("Нет логина");
    }
    signName.value = mass[0];
    signName.dispatchEvent(new Event('change', {bubbles: true}));
    signName.dispatchEvent(new Event('blur', {bubbles: true}));
    signPass.value = mass[1];
    signPass.dispatchEvent(new Event('change', {bubbles: true}));
    signPass.dispatchEvent(new Event('blur', {bubbles: true}));
    timeout = 50;
    waitReady();
}

// Ждем проверки email при реге
function waitReady() {
    if (document.getElementById("ws-xman-email-checking").style.display != "none") {
        if (--timeout) return setTimeout(waitReady, 200);
        else return;
    }
    document.getElementById("ws-xman-register-submit").click();
}
 
Cкрипт-заполнитель. Скрипт заполняет адресные данные в профиле. Данные должны быть три ячейки подряд из экселя, либо данные разделенные двоеточием, т.е. имя, адрес и телефон в любом порядке.
В начале скрипта надо сделать настройку - указать порядок данных, страну, область и город.
При загрузке фокус сразу передается полю ввода, поэтому можно сразу нажать ctrl+v + enter (либо кнопка).

Код:
// ==UserScript==
// @name         Aliexpress address filler
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Andronio
// @match        ilogisticsaddress.aliexpress.com/addressList.htm*
// @match        ilogisticsaddress.aliexpress.ru/addressList.htm*
// @grant        none
// ==/UserScript==

/*
Выбираем свою страну: KZ, RU, BY, UA
Область и город так, как написано на страничке адреса
Если область или город не получается, то смотрим код страницы
и ищем свои данные.
Задаем порядок следования ваших данных. Например у меня:
телефон -> адрес -> имя, соответственно у меня порядок
будет 0, 1, 2
*/

let myIndex     = "100000";
let myPhoneCode = "+7";
let myCountry   = "KZ";
let myProvince  = "oblast";
let myCity      = "gorod";

let orderPhone  = 0;
let orderAddr   = 1;
let orderName   = 2;



(function () {
    'use strict';

    var div = document.createElement('div');
    div.className = 'myBox';

    div.innerHTML += `
    <input type="text" id="namepass"></br>
    <input type="button" id="fillAddr" class="mybutton" value="Заполнить">
    `;

    // Стили
    var styles = `
    .myBox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }

    .mybutton {
    display: inline;
    padding: 5px 10px;
    margin-right:auto;
    cursor:pointer;
    }`

        var styleSheet = document.createElement("style")
        styleSheet.type = "text/css"
        styleSheet.innerText = styles
        document.head.append(styleSheet)
        document.body.append(div);

    let mybutton2 = document.getElementById("fillAddr");
    mybutton2.addEventListener('click', fillAddrFunc);
    let mytext = document.getElementById("namepass");
    mytext.addEventListener('keydown', event => {
        if (event.keyCode == "13") {
            document.getElementById('fillAddr').click();
        }
    });
    mytext.focus();
})();


let currMode = 0;
let myTemp = "";

// Функция заполения адреса
function fillAddrFunc() {

    let elemCountry = document.querySelector('select[name="country"]');
    let elemProvinceSelect = document.querySelector('.sa-province-wrapper > select');
    let elemProvinceInput = document.querySelector('.sa-province-wrapper > input');
    let elemCitySelect = document.querySelector('.sa-city-wrapper > select');
    let elemCityInput = document.querySelector('.sa-city-wrapper > input');

    switch(currMode) {
        case 0:
            let namepass = document.getElementById("namepass");
            let mass;

            if (namepass.value == "") return alert("Нет данных");
            if (/.+\t.+\t.+/.test(namepass.value)) {
                mass = namepass.value.split('\t');
            } else if (/.+:.+:.+/.test(namepass.value)) {
                mass = namepass.value.split(':');
            } else {
                namepass.value = "";
                return alert("Неправильный формат");
            }

            document.querySelector('input[name="contactPerson"]').value = mass[orderName];
            document.querySelector('input[name="address"]').value = mass[orderAddr];
            document.querySelector('input[name="zip"]').value = myIndex;
            document.querySelector('input[name="mobileNo"]').value = mass[orderPhone];
            elemCountry.value = myCountry;
            myTemp = elemProvinceSelect.options[1].text;
            elemCountry.dispatchEvent(new Event("change"));
            currMode = 1;
            return setTimeout(fillAddrFunc, 200);
            break;
        case 1:
            if (elemProvinceSelect.options[1].text == myTemp && myCountry != "BY")
                return setTimeout(fillAddrFunc, 200);
            if (myCountry == "BY") {
                elemProvinceInput.value = myProvince;
            } else {
                elemProvinceSelect.value = myProvince;
                elemProvinceSelect.dispatchEvent(new Event("change"));
            }
            currMode = 2;
            return setTimeout(fillAddrFunc, 200);
            break;
        case 2:
            if (elemCitySelect.length == 0 && myCountry != "BY")
                return setTimeout(fillAddrFunc, 200);
            if (myCountry == "BY") {
                elemCityInput.value = myCity;
            } else {
                elemCitySelect.value = myCity;
                elemCitySelect.dispatchEvent(new Event("change"));
            }
            currMode = 3;
            return setTimeout(fillAddrFunc, 200);
            break;
        case 3:
            document.querySelector('input[name="phoneCountry"]').value = myPhoneCode;
            currMode = 0;
            document.querySelector('.sa-confirm').click();
            break;
        default:
            alert("Ошибка в программе");
    }
}
 
Cкрипт автоматической оплаты заказа/заказов и доведения до вебманей/яндекс.денег
1. Если домен .ru и есть неоплаченные заказы, то автоматически перекидывает на .com
2. Если есть неоплаченные заказы, то добавляется кнопка "оплатить все" и скрипт автоматом доводит до оплаты все неоплаченные заказы.
3. Если нажать "Оплатить" на отдельном заказе, то его доведет до отплаты.
4. Можно платить WebMoney или Яндекс.Деньги (настраивается в скрипте)

В скрипте нужно свой способ оплаты раскомментировать, а другой закомментировать вот так
Код:
let mymoney = 'WebMoney';

//let mymoney = 'Яндекс.Деньги';

или так
Код:
//let mymoney = 'WebMoney';

let mymoney = 'Яндекс.Деньги';

Код:
// ==UserScript==
// @name         Aliexpress automatic payment
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  try to take over the world!
// @author       Andronio
// @match        https://trade.aliexpress.ru/orderList.htm*
// @match        https://trade.aliexpress.com/orderList.htm*
// @match        https://trade.aliexpress.ru/order_list.htm*
// @match        https://trade.aliexpress.com/order_list.htm*
// @match        https://shoppingcart.aliexpress.ru/order/secondPayment.htm*
// @match        https://shoppingcart.aliexpress.com/order/secondPayment.htm*
// @grant        none
// ==/UserScript==

let mymoney = 'WebMoney';
//let mymoney = 'Яндекс.Деньги';

(async function() {
    'use strict';
    let href = location.href;
    if (href.search("trade.aliexpress.ru/orderList.htm") >= 0 ||
        href.search("trade.aliexpress.ru/order_list.htm") >= 0) {
        let buttonPay = document.querySelectorAll(".button-pay");
        if (buttonPay.length > 0) {
            location.href = "https://trade.aliexpress.com/orderList.htm";
            return;
        }
    }
    if (href.search("shoppingcart.aliexpress.ru/order/secondPayment.htm") >= 0 ||
        href.search("shoppingcart.aliexpress.com/order/secondPayment.htm") >= 0)
           wmPaySelect();
    if (href.search("trade.aliexpress.com/orderList.htm") >= 0 ||
        href.search("trade.aliexpress.com/order_list.htm") >= 0) {
// currentMode - хранит текущий шаг последовательности оплаты
        let currentMode = sessionStorage.getItem('currentMode');
        if (!currentMode) {

// Первый проход
            let buttonPay = document.querySelectorAll(".button-pay");
            if (buttonPay.length > 0) {
                let combinPay = document.getElementById("TP_CombinPay");
                if (!combinPay) {
    // Кнопка оплатить все
                    let button = document.createElement("button");
                    button.id = "allPay";
                    button.className = "ui-button ui-button-primary combine-pay-button";
                    button.innerText = "Оплатить все";
                    document.getElementById("simple-pager").before(button);
                    button.addEventListener("click", function(){
                        sessionStorage.setItem('currentMode', 'payAll_step1');
                        document.getElementById("remiandTips_waitBuyerPayment").click();
                    });
                }
            }
        } else {
            document.getElementById("cb").click();   // Выбрать все заказы
            await sleep(100);
            document.getElementById("TP_CombinPay").click();          // Нажать кнопку оплатить
            sessionStorage.removeItem('currentMode');
        }
    }

})();


async function wmPaySelect() {
    // Ждем выбор эл. денег
    try {
        await waitForDisableElement("#init-loading", 150);
        await waitForElement(".title-to-detail", 150);
    } catch {
        return alert("Не найден элемент 1");
    }
    await sleep(500);
    document.querySelector(".title-to-detail").click();
// Ждем появления вебманей
    try {
        await waitForElement(".payment-opt", 150);
    } catch {
        return alert("Не найден элемент 2");
    }
// Выбираем вебмани
    let money = document.querySelectorAll(".opt-title");
    let found = false;
    for (let el of money) {
        if (el.innerText == mymoney) {
            money = el;
            found = true;
            break;
        }
    }
    await sleep(800);
    if (found) {
        try {
            await waitForDisableElement(".spinner-container", 150);
        } catch {
            return alert("Не найден элемент 2.5");
        }
        await sleep(800);
        money.click();
    } else return alert("Не нашел " + mymoney + " 3");
// Только для ЯД нажать кошелек
    if (mymoney == 'Яндекс.Деньги') {
        await sleep(800);
        try {
            await waitForDisableElement(".spinner-container", 150);
            await waitForElement(".sub-payment-opt-item", 150);
        } catch {
            return alert("Не найден элемент 4");
        }
        await sleep(500);
        let wallet = document.querySelectorAll(".sub-payment-opt-item");
        if (wallet) wallet[0].click();
        else return alert("Не нашел " + mymoney + " 5");
    }
    await sleep(800);
    let countdown = 15;
    do {
        try {
            await waitForDisableElement(".spinner-container", 150);
        } catch {
            return alert("Не прошел ожидание 7");
        }
        await sleep(1000);
    } while(document.querySelector(".spinner-container") && --countdown);
    if (!countdown) return alert("Не прошел ожидание 8");
    await sleep(500);
    document.querySelector(".next-btn-primary").click();
}

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

// Функция ждет элемент elem, таймаут timeout
async function waitForElement(elem, timeout) {
    while(!document.querySelector(elem) && --timeout > 0) {
        await sleep(100);
    }
    let el = document.querySelector(elem);
    if (el) return Promise.resolve(el);
        else return Promise.reject();
}

async function waitInnerText(elem, text, timeout)
{
    let el;
    do {
        el = document.querySelector(elem);
        if (el.innerText == text) break;
    } while(--timeout > 0);
    if (el.innerText == text) Promise.resolve(el);
        else return Promise.reject();
}

// Функция для фрейма ждет элемент elem, таймаут timeout
async function waitForDisableElement(elem, timeout) {
    let el;
    while((el = document.querySelector(elem)) && --timeout > 0) {
        if (el.style.display == "none") break;
        await sleep(100);
    }
    if (!el || el.style.display == "none") return Promise.resolve(true);
        else return Promise.reject();
}
 
Скрипт ускоряющий оплату через вебмани. Вводит WMId, пароль, капчу НЕ РЕШАЕТ, нажимает получить E-NUM, при получении кода жмет кнопки до возвращения на Али. В коде нужно поставить ваш WMId и пароль.

Код:
// ==UserScript==
// @name         WebMoney E-NUM clicker
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Вводит WMId и пароль на WebMoney
// @author       Andronio
// @match        https://merchant.web.money/lmi/payment_conf.asp
// @match        https://merchant.web.money/lmi/SignedLoginFormNewWC.asp*
// @match        https://psp.wmtransfer.com/payment/process/*
// @match        https://merchant.web.money/lmi/payment_do.asp
// @match        https://shoppingcart.aliexpress.com/order/payResult.htm?cashierRequestNo*
// @grant        none
// ==/UserScript==

let mwIdVal = "000000000000";
let wmPassVal = "000000000";



(function repeat() {
    'use strict';
    let href = window.location.href;

    if (href == "https://merchant.web.money/lmi/payment_conf.asp") {
        let enumCode = document.getElementById("ConfirmENum");
        let confirmButton = document.getElementById("do_payment");
        let askENUM = document.getElementById("ConfirmENumSend");

        if (askENUM) askENUM.click();
        if (!enumCode) {
            setTimeout(repeat, 500);
        } else {
            if (enumCode.value == ""){
            // Запуск таймера
            setTimeout(repeat, 500);
            } else {
                confirmButton.click();
            }
        }
    }
    if (/psp\.wmtransfer\.com\/payment\/process\//.test(href)) {
        let returnButton = document.getElementById("returnToMerchant");
        if (!returnButton) {
            setTimeout(repeat, 500);
        } else {
            if (returnButton.clientWidth == 0) {
                setTimeout(repeat, 500);
            } else {
                    returnButton.click();
            }
        }
    }
    if (/merchant\.web\.money\/lmi\/SignedLoginFormNewWC\.asp/.test(href)) {

        let wmId = document.getElementById("wmcheck_no");
        let wmPass = document.getElementById("wmcheck_pwd");
        let wmCapt = document.getElementById("mobilecaptcha");
        let wmAuth = document.getElementById("auth");

        if (wmId && wmPass) {
            if (wmPass.parentNode.parentNode.classList.contains('js-hidden')) {
                if (wmId.value == "") {
                    wmId.value = mwIdVal;
                    wmCapt.focus();
                }
                setTimeout(repeat, 500);
            } else {
                if (wmPass.value == "") {
                    wmPass.value = wmPassVal;
                    if (wmId.value == "") {
                        wmId.value = mwIdVal;
                        wmCapt.focus();
                    }
                }
                if (wmCapt.value != "") wmAuth.click();
            }
        } else {
            setTimeout(repeat, 500);
        }
    }
    if (href == "https://merchant.web.money/lmi/payment_do.asp") {
        let backButton = document.getElementById("back_toshop");
        if (backButton) {
            backButton.click();
        } else {
            setTimeout(repeat, 500);
        }
    }
    if (/shoppingcart\.aliexpress\.com\/order\/payResult\.htm/.test(href)) {

        let mybtn = document.querySelectorAll(".operation-container > .next-btn-primary")

        if (mybtn.length != 0) {
            mybtn[1].click();
        } else {
            setTimeout(repeat, 500);
        }
    }
})();
 
Скрипт ускоряющий оплату через вебмани с авторизацией через Яндекс.

Код:
// ==UserScript==
// @name         WM pay by Yandex
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Авторизация на WebMoney через Yandex
// @author       Andronio
// @match        https://merchant.web.money/lmi/payment_conf.asp
// @match        https://merchant.web.money/lmi/SignedLoginFormNewWC.asp*
// @match        https://psp.wmtransfer.com/payment/process/*
// @match        https://merchant.web.money/lmi/payment_do.asp
// @match        https://passport.yandex.ru/auth*
// @match        https://shoppingcart.aliexpress.com/order/payResult.htm?cashierRequestNo*
// @grant        none
// ==/UserScript==

let yandexLogin = "login";
let yandexPass  = "pass";

(function repeat() {
    'use strict';
    let href = window.location.href;

    if (/passport\.yandex\.ru\/auth/.test(href)) {
        let newForm = document.getElementById("passp-field-login");
        if (newForm) {
            document.querySelector("form").submit();
            return;
        } else {
            document.getElementById("login").value = yandexLogin;
            document.getElementById("passwd").value = yandexPass;
            document.querySelector(".js-submit-button").click();
        }
    }

    if (href == "https://merchant.web.money/lmi/payment_conf.asp") {
        let enumCode = document.getElementById("ConfirmENum");
        let confirmButton = document.getElementById("do_payment");
        let askENUM = document.getElementById("ConfirmENumSend");

        if (askENUM) askENUM.click();
        if (!enumCode) {
            setTimeout(repeat, 500);
        } else {
            if (enumCode.value == ""){
            // Запуск таймера
            setTimeout(repeat, 500);
            } else {
                confirmButton.click();
            }
        }
    }
    if (/psp\.wmtransfer\.com\/payment\/process\//.test(href)) {
        let returnButton = document.getElementById("returnToMerchant");
        if (!returnButton) {
            setTimeout(repeat, 500);
        } else {
            if (returnButton.clientWidth == 0) {
                setTimeout(repeat, 500);
            } else {
                    returnButton.click();
            }
        }
    }

    if (/merchant\.web\.money\/lmi\/SignedLoginFormNewWC\.asp/.test(href)) {

        let socMore = document.querySelector(".soc-show_more");

        if (!socMore.classList.contains("active")) {
            socMore.classList.add("active");
            setTimeout(repeat, 500);
        } else {
            let socYandex = document.querySelector(".soc-yandex");
            if (!socYandex) setTimeout(repeat, 500);
            else {
                socYandex.click();
                return;
            }
        }
    }
    if (href == "https://merchant.web.money/lmi/payment_do.asp") {
        let backButton = document.getElementById("back_toshop");
        if (backButton) {
            backButton.click();
        } else {
            setTimeout(repeat, 500);
        }
    }
    if (/shoppingcart\.aliexpress\.com\/order\/payResult\.htm/.test(href)) {

        let mybtn = document.querySelectorAll(".operation-container > .next-btn-primary")

        if (mybtn.length != 0) {
            mybtn[1].click();
        } else {
            setTimeout(repeat, 500);
        }
    }
})();

@MORAX Нужна чистка
---------Двойное сообщение соединено: ---------
Скрипт заполнения данных платежной карточки. Заполнение происходит только на полной версии корзины, т.е. адрес должен быть https://shoppingcart.aliexpress.ru/orders.htm?aeOrderFrom=main_shopcart*
Данные карты должны быть в формате
Код:
5405 1047 0034 3817, 2023/02, 461, IRINA ANDREEVA, MasterCard - Wells Fargo Bank, USA
Только в таком, другой никак.

Код:
// ==UserScript==
// @name         Aliexpress CARD filler
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Заполнение данных платежной карты
// @author       Andronio
// @match        https://shoppingcart.aliexpress.ru/orders.htm?aeOrderFrom=main_shopcart*
// @grant        none
// @noframes
// ==/UserScript==

let timeout = 50;

(function() {
    'use strict';

    var div = document.createElement('div');
    div.className = 'myBox';

    div.innerHTML += `
    <input type="text" id="carddata"></br>
    <input type="button" id="cardfill" class="mybutton" value="Карта">
    `;

// Стили
    var styles = `
    .myBox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }

    .mybutton {
    display: inline;
    padding: 5px 10px;
    margin-right:auto;
    cursor:pointer;
    }`

    var styleSheet = document.createElement("style")
    styleSheet.type = "text/css"
    styleSheet.innerText = styles
    document.head.append(styleSheet)
    document.body.append(div);

    let mybutton1 = document.getElementById("cardfill");
    mybutton1.addEventListener('click', cardFunc);
    let mytext = document.getElementById("carddata");
    mytext.addEventListener('keydown', event => {
        if (event.keyCode == "13") {
            document.getElementById('cardfill').click();
        }
    });
    mytext.focus();

})();

function cardFunc() {
    let cardNumber = document.getElementById('cardNo');
    let cardHold   = document.getElementById('cardHolder');
    let dateExpire = document.getElementById('expire');
    let codeCVC    = document.getElementById('cvc');
    let mytext     = document.getElementById("carddata");
    let mass;

    if (mytext.value == "") return null;
    if (/\d{4}\s\d{4}\s\d{4}\s\d{4},\s\d{4}\/\d\d,\s\d{3},\s[\w\s]+,\s/.test(mytext.value)) {
        mass = mytext.value.split(', ');
    } else {
        return alert("Нет данных карты");
    }
    let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;

    nativeInputValueSetter.call(cardNumber, mass[0]);
    cardNumber.dispatchEvent(new Event('change', {bubbles: true}));
    cardNumber.dispatchEvent(new Event('blur', {bubbles: true}));

    nativeInputValueSetter.call(cardHold, mass[3]);
    cardHold.dispatchEvent(new Event('change', {bubbles: true}));

    let date = mass[1].slice(5,7) + '/' + mass[1].slice(2,4);
    nativeInputValueSetter.call(dateExpire, date);
    dateExpire.dispatchEvent(new Event('change', {bubbles: true}));

    nativeInputValueSetter.call(codeCVC, mass[2]);
    codeCVC.dispatchEvent(new Event('change', {bubbles: true}));

    document.querySelector('[ae_button_type="confirm"]').click();
    document.querySelector(".myBox").style.display = "none";
}
 
я б может и пользовался..если бы знал куда их вставлять
 
я б может и пользовался..если бы знал куда их вставлять
Ну вот здесь же все расписано с картинками.
---------Двойное сообщение соединено: ---------
Код:
// ==UserScript==
// @name         Aliexpress Order info getter track
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Получение информации из заказа и трека
// @author       Andronio
// @match        https://trade.aliexpress.ru/orderList.htm*
// @match        https://trade.aliexpress.ru/order_list.htm*
// @match        https://trade.aliexpress.com/orderList.htm*
// @match        https://trade.aliexpress.com/order_list.htm*
// @noframes
// ==/UserScript==
/*
prodName  - Название товара
picURL    - URL-ссылка на картинку-превью товара
prodPrice - Цена товара
today     - Сегодняшняя дата
orderNum  - Номер заказа
\t        - Табуляция, переход к следующей ячейке
picPrefix - 1 - добавлять префик picURL= для адреса картинки, 0 - не добавлять
track     - Трек-номер заказа
date      - Дата автозакрытия заказа
Строка должна начинаться и заканчиваться символом обратной кавычки
*/
var orderStr  = `prodName + '\t' + picURL + '\t' + prodPrice + '\t' + today +  '\t' + orderNum`;
var trackStr  = `track + '\t' + date`;
let picPrefix = 1;
/*
Далее не трогать
*/
let ordersMass = [];
let trackMass = [];
(function () {
    'use strict';
// Рисуем окно с кнопками
    var div = document.createElement('div');
    div.className = 'mybox';
    let product = document.querySelectorAll('.order-item-wraper');
    let hasTrackable = false;
    if (product.length == 0) {
        div.innerHTML = '<p class="noorders">Нет заказов</p>';
    } else {
        let str = document.body.innerHTML.split("var appealInfoParams = encodeURIComponent('")[1].split("');")[0];
        if (str.match(/\[(\{("\w+":["\w]+,)+"\w+":["\w]+\},){0,30}\{("\w+":["\w]+,)+"\w+":["\w]+\}\]/g)) {
            ordersMass = eval(str);
            ordersMass.forEach(order => {
                if (order.orderStatus == "WAIT_BUYER_ACCEPT_GOODS") {
                    hasTrackable = true;
                }
            });
        }
        div.innerHTML = `<button class="infoGetter" myattr="-1">Все заказы</button>`;
        if (hasTrackable) div.innerHTML +=`<button class="trackGetter" myattr="99" disabled>Треки</button>`;
        for (let i = 0; i < product.length; i++) {
            let productName = product[i].querySelectorAll(".product-title > a.baobei-name")[0].getAttribute("title").substr(0,20);
            div.innerHTML += `<br><button class="infoGetter" myattr="${i}">${i+1} - <span style="color:green">${productName}</span></button>`;
            if (hasTrackable && ordersMass[i].orderStatus == 'WAIT_BUYER_ACCEPT_GOODS')
                div.innerHTML += `<button class="trackGetter" myattr="${i+100}" disabled>Трек</button>`;
        }
    }
    document.body.append(div);
    var styles = `
    .mybox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 10px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }
    .noorders {
    color: red;
    text-align: center;
    font-size: 1.5em;
    padding: 5px;
    margin: 0;
    }
    .infoGetter {
    display: inline;
    margin-right:auto;
    margin-top: 2px;
    cursor:pointer;
    padding: 5px;
    width: 180px;
    text-align: left;
    }
    .trackGetter {
    display: inline;
    margin-right:auto;
    margin-top: 2px;
    cursor:pointer;
    padding: 5px;
    width: 46px;
    text-align: left;
    }
    .greenbutton{
    background-color: LightGreen;
    }`
    var styleSheet = document.createElement("style")
    styleSheet.type = "text/css"
    styleSheet.innerText = styles
    document.head.append(styleSheet)
    div.addEventListener('click', buttonClick);
    if (hasTrackable) getTracks();
})();
function buttonClick(event) {
    let elem = event.target;
    if (elem.tagName != "BUTTON") {
        elem = elem.parentNode;
        if (elem.tagName != "BUTTON") return;
    }
    let orderString;
    let num = +elem.getAttribute('myattr');
    if (num > 98) return trackBuff(num, elem);
    else {
        let product = document.querySelectorAll('.order-item-wraper');
        let productPrice = document.querySelectorAll(".amount-num");
        let orderNumber = document.querySelectorAll(".order-info > .first-row > span.info-body");
        let today = formatDate();
        let prodName, prodPrice, orderNum;
        if (num > -1) {
            // один заказ
            let productName = product[num].querySelectorAll(".product-title > a.baobei-name");
            let picURL = product[num].querySelectorAll(".pic.s50 > img")[0].src;
            if (picPrefix) picURL = "picURL=" + picURL;
            prodName = `=ГИПЕРССЫЛКА("https:\/\/www.aliexpress.ru\/item\/${productName[0].getAttribute("productid")}.html";` +
                `"${productName[0].getAttribute("title").substr(0,80)}")`;
            prodPrice = productPrice[num].innerText.match(/\d+\.\d+/);
            if (prodPrice)
                prodPrice = prodPrice[0].replace(/\./,",");
            else
                prodPrice = productPrice[num].innerText.trim();
            orderNum = orderNumber[num].innerText;
            orderString = eval(orderStr);
        } else {
            // много заказов
            orderString = "";
            for (let num = 0; num < orderNumber.length; num++) {
                let productName = product[num].querySelectorAll(".product-title > a.baobei-name");
                let picURL = product[num].querySelectorAll(".pic.s50 > img")[0].src;
                if (picPrefix) picURL = "picURL=" + picURL;
                prodName = `=ГИПЕРССЫЛКА("https:\/\/www.aliexpress.ru\/item\/${productName[0].getAttribute("productid")}.html";` +
                    `"${productName[0].getAttribute("title").substr(0,80)}")`;
                prodPrice = productPrice[num].innerText.match(/\d+\.\d+/);
                if (prodPrice)
                    prodPrice = prodPrice[0].replace(/\./,",");
                else
                    prodPrice = productPrice[num].innerText.trim();
                orderNum = orderNumber[num].innerText;
                orderString += eval(orderStr);
                orderString += "\r\n";
            }
        }
    }
    navigator.clipboard.writeText(orderString).then(function () {
        console.log('Async: Copying to clipboard was successful!');
        window.mybtn = elem;
        window.mybtn.classList.add("greenbutton");
        setTimeout(() => window.mybtn.classList.remove("greenbutton"), 500);
    }, function (err) {
        console.error('Async: Could not copy text: ', err);
    });
}
function trackBuff(num, elem){
    num -= 100;
    let date, track, orderString = "";
    let trackMassCopy = trackMass.slice();
    if (num > -1) {
        let el = trackMassCopy.find(index => index.id == ordersMass[num].id);
        date = el.date;
        track = el.track;
        orderString = eval(trackStr);
    } else {
        for (let i = 0; i < ordersMass.length; i++) {
            if (ordersMass[i].orderStatus == "WAIT_BUYER_ACCEPT_GOODS") {
                let el = trackMassCopy.shift();
                date = el.date;
                track = el.track;
                orderString += eval(trackStr);
            }
            orderString += "\r\n";
        }
    }
    navigator.clipboard.writeText(orderString).then(function () {
        console.log('Async: Copying to clipboard was successful!');
        window.mybtn = elem;
        window.mybtn.classList.add("greenbutton");
        setTimeout(() => window.mybtn.classList.remove("greenbutton"), 500);
    }, function (err) {
        console.error('Async: Could not copy text: ', err);
    });
}
function getTracks() {
    ordersMass.forEach(order => {
        if (order.orderStatus == "WAIT_BUYER_ACCEPT_GOODS") {
            trackMass.push({id: order.id, track: "", date: ""});
        }
    });
    let requests = trackMass.map(order => fetch(`${location.protocol}//${location.hostname}/order_detail.htm?orderId=${order.id}`));
    Promise.all(requests)
        .then(responses => Promise.all(responses.map(r => r.text())))
        .then(texts => {
            for (let i = 0; i < texts.length; i++) {
                let obj = document.createElement('html');
                obj.innerHTML = texts[i];
                let track = obj.querySelector(".flush-btn").getAttribute("logisticsNo");
                let date = obj.querySelector('.order-reminder');
                if (!track || !date) return alert("Не получил информацию о заказе");
                date = date.innerText.match(/\d{4}-\d\d-\d\d/g);
                if (date.length > 0) date = date[0].replace(/\d\d(\d\d)-(\d\d)-(\d\d)/, '$3.$2.$1');
                else return alert("Не правильная дата в заказе");
                trackMass[i].track = track;
                trackMass[i].date = date;
            }
            document.querySelectorAll(".trackGetter").forEach(elem => elem.removeAttribute("disabled"));
        })
        .catch(err => alert(`Ошибка ${err}`));
}
function formatDate() {
    let date = new Date();
    let dd = date.getDate();
    if (dd < 10)
        dd = '0' + dd;
    let mm = date.getMonth() + 1;
    if (mm < 10)
        mm = '0' + mm;
    let yy = date.getFullYear() % 100;
    if (yy < 10)
        yy = '0' + yy;
    return dd + '.' + mm + '.' + yy;
}
 
В предыдущем сообщении скрипт большой, еле влез в сообщение

Скрипт получения информации из заказа. На странице списка заказов появляется окно с кнопками. Первая кнопка - получить все заказы, остальные, соответственно, один заказ. Данные о заказе копируются в буфер обмена, можно напрямую вставить в Excel. Необходимая последовательность ячеек нужно указать в строке вначале. Важно не испортить строку, иначе скрипт упадет. Строка должна начинаться и заканчиваться символом обратной кавычки. Для перехода к следующей ячейке используется символ табуляции \t.
Также добавил ссылку на картинку-превью в информацию. Перед ссылкой стоит префикс picURL=, его можно отключить.
Если заказ отправлен, то справа добавляется кнопка получения трека и даты автозакрытия заказа. Данные также копируются в буфер. Формат данных также можно настроить.
Для загрузки картинки из инета в экселе сделал скрипт, его надо повесить на кнопку. Надо выделить нужные строки и нажать кнопку. Const piccell As Integer = 6 - указывает номер столбца где ищутся картинки.
Код:
Sub GetPics()
Const piccell As Integer = 6
Dim begincell As Integer, endcell As Integer
begincell = Selection.Cells(1).Row
endcell = Selection.Cells(Selection.Cells.Count).Row
For i = begincell To endcell
    If InStr(Cells(i, piccell).Value, "picURL=") Then
        path_string = Right(Cells(i, piccell).Value, Len(Cells(i, piccell).Value) - 7)
        iLeft = Cells(i, piccell).Left
        iTop = Cells(i, piccell).Top
        iHeight = Cells(i, piccell).Height
        With ActiveSheet.Pictures.Insert(path_string)
            .Top = iTop
            .Left = iLeft
            .Width = iHeight
            .Height = iHeight
        End With
        Cells(i, piccell).Value = ""
    End If
Next i
End Sub
Только не спрашивайте меня как установить Скрипт для Excel VBA. Вот моя таблица для примера https://drive.google.com/file/d/1lsqf3DU1ibRWOIAnQZBvFXHKe0eCbvFx/view?usp=sharing
 
Далее более мелкие скрипты, уже без категорий

Скрипт рандомно заполняет все поля. В начале скрипта запишите свою страну, соответственно, KZ, RU, BY
Код:
// ==UserScript==
// @name         Aliexpress profile filler for Game
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Изменяет страну на USA и заполняет поля
// @author       Andronio
// @match        https://accounts.aliexpress.com/user/organization/manage_person_profile.htm?isEdit=true
// @grant        none
// ==/UserScript==

var myCountry = "KZ";

(function() {
    'use strict';

    // Your code here...
    var div = document.createElement('div');
    div.className = 'mybox';

    div.innerHTML += `
    <input type="button" id="usa" class="mybutton" value="Fill USA">
    <input type="button" id="kaz" class="mybutton" value="Fill ${myCountry}">
    `;

// Стили
    var styles = `
    .mybox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }

    .mybutton {
    display: inline;
    padding: 10px 20px;
    margin-right:auto;
    cursor:pointer;
    }`

    var styleSheet = document.createElement("style")
    styleSheet.type = "text/css"
    styleSheet.innerText = styles
    document.head.appendChild(styleSheet)
    document.body.appendChild(div);
    let mybutton1 = document.getElementById("usa");
    mybutton1.addEventListener('click', fillUSA);
    let mybutton2 = document.getElementById("kaz");
    mybutton2.addEventListener('click', fillKAZ);
})();

async function fillUSA() {
    let genderMale = document.getElementById("mr");
    let genderFemale = document.getElementById("ms");
    let countrySel = document.getElementById("countrySelect");
    let allInput = document.querySelectorAll("input");
    let submitButton = document.getElementById("formSubmit");

    if (genderMale.checked == false && genderFemale.checked == false) {
        if (Math.random() > 0.5) {
            genderMale.checked = true;
        } else {
            genderFemale.checked = true;
        }
    }

    if (allInput[10].value == "") allInput[10].value = randomString(9);
    if (allInput[11].value == "") allInput[11].value = randomString(9);

    countrySel.value = "US";
    countrySel.onchange();
    await sleep(500);
    let province = document.getElementById("usProvinceList");
    province.selectedIndex = Math.floor(Math.random() * province.length);

    if (allInput[13].value == "") allInput[13].value = getRandomInt(999999);

    allInput[14].value = "1";
    allInput[15].value = getRandomInt(999);
    allInput[16].value = getRandomInt(99999999);
    allInput[17].value = "1";
    submitButton.click();
}

async function fillKAZ() {
    let genderMale = document.getElementById("mr");
    let genderFemale = document.getElementById("ms");
    let countrySel = document.getElementById("countrySelect");
    let allInput = document.querySelectorAll("input");
    let submitButton = document.getElementById("formSubmit");

    if (genderMale.checked == false && genderFemale.checked == false) {
        if (Math.random() > 0.5) {
            genderMale.checked = true;
        } else {
            genderFemale.checked = true;
        }
    }

    if (allInput[10].value == "") allInput[10].value = randomString(9);
    if (allInput[11].value == "") allInput[11].value = randomString(9);

    countrySel.value = myCountry;
    countrySel.onchange();
    await sleep(500);

    allInput[12].value = randomString(9);

    allInput[13].value = getRandomInt(999999);

    allInput[14].value = "7";
    allInput[15].value = getRandomInt(999);
    allInput[16].value = getRandomInt(99999999);
    allInput[17].value = "7";
    submitButton.click();

}

function randomString(i)
{
    var text = "";
    var possible = "abcdefghijklmnopqrstuvwxyz";

    while (text.length < i)
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max)).toString();
}

Скрипт автонажатия кнопки на игре "пуск"
Код:
// ==UserScript==
// @name         Game Controller
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Andronio
// @match        https://sale.aliexpress.com/__mobile/cash_brother_m.htm*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    let gameButton = document.querySelector("._2WRj8");

debugger;
    if (gameButton) {
        gameButton.click();

    }

})();
 
Скрипт автоматически меняет страну доставки на выбранную и валюту. Зачем он нужен - не знаю, кто-то просил.

Код:
// ==UserScript==
// @name         Aliexpress Country Changer
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Изменяет страну и валюту
// @author       Andronio
// @match        https://aliexpress.ru/*
// @match        https://www.aliexpress.com/*
// @grant        none
// ==/UserScript==

let myCurrency = "USD";
let myCountry = "RU";

(function () {
    'use strict';

    let myTemp = document.cookie.split('; ');
    let isFoundCookie = false;
    let isNeedModif = false;
    myTemp.forEach(elem => {
        if (/aep_usuc_f=.*/.test(elem)) { // Если нашел нужную куку
            isFoundCookie = true;
            elem = elem.slice(11); // Убираем aep_usuc_f=
            elem = elem.split('&');
            elem.forEach(elem2 => { // Смотрим, что в куке
                if (/c_tp=.*/.test(elem2)) {
                    if (elem2.slice(5) != myCurrency) {
                        isNeedModif = true;
                    }
                }
                if (/region=.*/.test(elem2)) {
                    if (elem2.slice(7) != myCountry) {
                        isNeedModif = true;
                    }
                }
            });
        }
    });
    if (isNeedModif || !isFoundCookie) {
        if (window.location.hostname.includes("aliexpress.ru")) {
            document.cookie = `aep_usuc_f=site=rus&c_tp=${myCurrency}&region=${myCountry}&b_locale=ru_RU; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT; domain=.aliexpress.ru`;
            window.location.reload();
        } else if (window.location.hostname.includes("aliexpress.com")) {
            document.cookie = `aep_usuc_f=site=rus&c_tp=${myCurrency}&region=${myCountry}&b_locale=ru_RU; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT; domain=.aliexpress.com`;
            window.location.reload();
        } else {alert("Ошибка в скрипте")};
        window.location.reload();
    }
})();

Скрипт удаления Евы
Код:
// ==UserScript==
// @name         Eva remover
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Andronio
// @match        https://trade.aliexpress.ru/orderList.htm*
// @match        https://trade.aliexpress.com/orderList.htm*
// @grant        none
// ==/UserScript==
let iCounter = 100;
(function repeat() {
    'use strict';
    let eva = document.getElementById('J_xiaomi_dialog');
    if (eva) {
        eva.hidden = true;
    } else {
        if (--iCounter) {
            setTimeout(repeat, 100);
        }
    }
})();
 
Скрипт получения списка заказов для BAS скрипта.
Скрипт на основе скрипта Dimokin https://mipped.com/f/threads/obsuzhdenija-kuponov-aliexpress-nojabr.91512/page-446#post-1993285

Как и в исходном скрипте, вычисляет цену всех позиций товара, показывает количество товара по каждой позиции. Если отправка не бесплатно, то предупреждает. И самое главное формирует список товаров в формате:

ID_тавара|выбор1|выбор2|выбор3|название_товара

и сразу копирует в буфер обмена для вставки в текстовый редактор.
Также есть две кнопки. Первая - Copy - очистка буфера в вставка нового айтема в буфер. Вторая добавляет новый айтем к существующему списку. Т.е. можно открыть много вкладок с товарами, выбирать и нажимать Add и в конце получить список для заказа.

Скачать:
https://drive.google.com/file/d/1I1Wb23M0qzvnPSQbB1henbiPXLwiupAC/view?usp=sharing
 
В предыдущем сообщении скрипт большой, еле влез в сообщение

Скрипт получения информации из заказа. На странице списка заказов появляется окно с кнопками. Первая кнопка - получить все заказы, остальные, соответственно, один заказ. Данные о заказе копируются в буфер обмена, можно напрямую вставить в Excel. Необходимая последовательность ячеек нужно указать в строке вначале. Важно не испортить строку, иначе скрипт упадет. Строка должна начинаться и заканчиваться символом обратной кавычки. Для перехода к следующей ячейке используется символ табуляции \t.
А можно добавить для отправленных чтобы была кнопка получить и инфу о заказе и трек сразу?
Нажал кнопку - скопировалось всё - вставил в excel..
 
Нет, у них разное назначение. Первая кнопка используется сразу после покупки для сохранения информации о заказе. В это время трека, естественно, еще нет. Когда уже получил трек, то информация о заказе уже давно в экселе, поэтому нет никакого смысла копировать здесь же и информацию о заказе.
 
Далее более мелкие скрипты, уже без категорий


Скрипт автонажатия кнопки на игре "пуск"

[/SPOILER]
Поясни по этому если не сложно , так и не разобрался для чего он.
 
Когда включается игра "пистолет" 3,99/4,99 нужно нажать начало или пуск, я уже не помню, т.к. не нажимаю. Вот эту кнопку скрипт и нажимает.
 
  • Like
Реакции: zet17
разобрался для чего он.
При переходе неавторизованного персонажа в игру сразу кидает на страницу авторизации, минуя промежуточную
Vhod.1589046650.jpg
 
Естественно. А как должно быть? Сначала авторизация, затем игра.
 
Моя попытка решения проблемы картинок.
Скрипт скрывает сообщения. Если completeHide равен 1 и у пользователя меньше newUserMessages сообщений, то его сообщение удаляется совсем. Если completeHide равен 0 и у пользователя меньше newUserMessages сообщений и в сообщении есть картинка, то его сообщение скрывается, появляется кнопка показать сообщение и часть сообщения, чтобы понять, надо раскрывать или нет. Если в сообщении картинок более maxPics у любого пользователя, то сообщение скрывается.
Сейчас скрипт работает по всему форуму, если нужна какая-то конкретная тема, в "// @match" записываем свою строку.

Код:
// ==UserScript==
// @name         Miped forum spam blocker
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Удаляет плохие сообщения
// @author       Andronio
// @match        https://mipped.com/f/threads/*
// @grant        none
// @run-at  document-end
// ==/UserScript==

let maxPics         = 2;     // Если больше 2 картинок в сообщении, то прятать
let newUserMessages = 15;    // Если меньше сообщений, то прятать сообщение
let completeHide    = 0;     // Прятать новичка всегда - 1 или только если в сообщении есть картинка - 0

// Далее не трогать

let messagesBuffer = [];

(function() {
    'use strict';

    let badMessageCounter = 0;
    let messages = document.querySelectorAll(".messageContent");
    messages.forEach(message => {
        let messagesCount = +message.closest(".uix_message").querySelector(".concealed").innerText.replace(/[^\d]+/, '');
        if (completeHide && messagesCount < newUserMessages)
            message.closest(".sectionMain.message").style.display = "none";
        else {
            let messagesPics = message.querySelectorAll("img");
            let imgCount = 0;
            messagesPics.forEach(img => {
                if (!img.src.startsWith("https://mipped.com/f/styles/"))
                    imgCount++;
            });
            if (imgCount > maxPics || imgCount && messagesCount < newUserMessages) {
                messagesBuffer.push(message.innerHTML);
                messagesPics.forEach(img => img.outerHTML = "<span>Здесь была картинка</span>");
                message.innerHTML = `<button name="show-bad-message" data-show="${badMessageCounter}">Показать</button><br>${message.innerText.slice(0,80)}`;
                badMessageCounter++;
            }
        }
    });
    let buttonShow = document.querySelectorAll('[name="show-bad-message"]');
    buttonShow.forEach(btn => btn.addEventListener("click", btnClickHandler));
})();

function btnClickHandler(event) {
    elem = event.target;
    elem.closest(".messageContent").innerHTML = messagesBuffer[elem.dataset.show];
}
 
Последнее редактирование: