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

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

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

  • Да

    Голосов: 293 63,8%
  • Нет

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

  • Всего проголосовало
    459
Как это нету? А "а"? Если нужен более уникальный селектор, так добавь его, например
document.write('<a id="my-super-cool-selector" href="data:text/plain;charset=utf-8,%EF%BB%BF'
Ну и далее по тексту

потом document.getElementById("my-super-cool-selector")
спасибо , тупанул . Подумал "a" это как пример , а не решение
 


Приветствую, а скрипт взятия бального купона есть?
 
Может кто то сможет подправить скрипт входа?
а то и первый и второй раз лезет слайдер.
а если еще раз обновить и попытатся зайти то заходит.
может сделать что бы раза три пытался зайти? или не поможет?
 
Сейчас есть рабочий скрипт для поиска добивки? Нашел только тот, который работает на /wholesale, я так понял что сейчас такой страницы на алике нет :what:
 
Исправил скрипт для заполнения в профиле страны. Если страница загрузилась "поврежденной", то страница перезагружается.

Ссылка на гитхаб
 
Последнее редактирование:
  • Like
Реакции: VovikBull
Если логин-пароль хранится в экселе в соседних ячейках, то для входа на алиэкспресс (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();
}
при реге по рефке выскакивает слайдер . Выяснил что слайдер лезет при выполнении кода signName.dispatchEvent(new Event('blur', {bubbles: true})); . Без этой строчки пишет сменить браузер . Можно как-то этот слайдер победить ?
 
Только на ру и кз меняет, остальные страны пишет Undefine после выполнения скрипта
 
  • Like
Реакции: StreKozа
Только на ру и кз меняет, остальные страны пишет Undefine после выполнения скрипта
Поменяй в доставке страну на европу или сша, язык английский и перейди на глобал, потом проверь
 
  • Like
Реакции: HunT00110
Т.к. хром сейчас жестко глючит, скачал FirefoxPortable, а там половина скриптов не работает. Это лечится?
ps разобрался. Firefox был 60 версии. Скачал новее и всё заработало.
 
Последнее редактирование:
  • Like
Реакции: Andronio
Что значит " почти неограниченное количество открываний на один номер "? Насколько я знаю максимум анлоков на один номер сейчас - 5. Или я что-то пропустил?
Если выбрать другую страну, то у этого номера будет другой тел. код и, соответственно, это уже будет другой номер. Далее меняем код на свой родной и получаем смс на свой родной номер. Это и делает скрипт. Далее берешь опять новую страну.

Задумка интересная, но будет ли работать? Кто-то уже делал так для анлока более чем 5 акков? Бана не было?
Пробовал эту методу, правда, все делал руками, а не скриптом, после 5 акка шли баны (пробовал на двух или трех номерах). Все что дает этот метод - это то, что не нужно ждать амнистии номера через время, а можно сразу разлочить 5 акков на один номер вместо двух.
 
Кутая и полезная вещь этот скрипт смены кода при разлоке. Автору респект. Интересно, а подобное можно сделать для смены e-mail, в случае жесткой верки по мылу? Там форма идентична с формой верки по телефону.
 
Последнее редактирование:
Скрипт ускоряющий оплату через вебмани с авторизацией через Яндекс.

Код:
// ==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";
}

Подскажите пожалуйста, а в засоленном заказе, когда нажимаешь оплатить сейчас и выбираешь добавить карту, появляется модальное окно для ввода карты. Нельзя ли скрипт модифицировать, чтобы в нем тоже автоматом вводил?

Буду очень благодарен!
 
Подскажите пожалуйста, а в засоленном заказе, когда нажимаешь оплатить сейчас и выбираешь добавить карту, появляется модальное окно для ввода карты. Нельзя ли скрипт модифицировать, чтобы в нем тоже автоматом вводил?

Буду очень благодарен!
Выбирай не купить сейчас, а добавить в корзину и из корзины заполняй.
 
  • Like
Реакции: Msklaw77
Запускаю скрипт для смены страны,жму на кнопку с значком страны пишет такой страны нет в списке.Чтоя делаю не так?
 
Запускаю скрипт для смены страны,жму на кнопку с значком страны пишет такой страны нет в списке.Чтоя делаю не так?
О каком скрипте речь? Много скриптов меняют страну в разных местах.
---------Двойное сообщение соединено: ---------
И какую страну ставишь? Конфиг?
 
Последний скрипт для заполнения профиля.Страна доставки usa валюта usd.Жму на настройки профиля.Запускаю скрипт,появляются
"US", "ES", "DE", "RU", "KZ".Жму на любую, пишет такой страны нет в списке.И ни чего не меняется.
 

Вложения

  • bbb.png
    bbb.png
    41,8 KB · Просмотры: 77
А куда именно это надо вставлять? В какое поле?
Ты что-то неправильно скопировал. У тебя весь код поврежден.
---------Двойное сообщение соединено: ---------
Последний скрипт для заполнения профиля.Страна доставки usa валюта usd.Жму на настройки профиля.Запускаю скрипт,появляются
"US", "ES", "DE", "RU", "KZ".Жму на любую, пишет такой страны нет в списке.И ни чего не меняется.
А ты точно последнюю версию взял? Последняя 1.2, она отлично работает.
 
Последнее редактирование:
А ты точно последнюю версию взял? Последняя 1.2, она отлично работает.

Я брал вот эту
Переделал скрипт смены страны и заполнения профиля для игры по своей методе.
Скрипт здесь https://mipped.com/f/threads/skripty-na-javascript-dlja-aliehkspress.105115/post-2495821

Где ссылка на последнюю версию?