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

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

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

  • Да

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

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

  • Всего проголосовало
    460
Здравствуйте. Скрипт для заполнения адреса работает? Или это у меня кривые руки?
Разобрался. Единственное 3 поля: имя,номер,адрес только через ctrlC ctrlV?
Добавить в скрипт в виде констант можно?
 
Последнее редактирование:


Здравствуйте. Скрипт для заполнения адреса работает? Или это у меня кривые руки?
Разобрался. Единственное 3 поля: имя,номер,адрес только через ctrlC ctrlV?
Добавить в скрипт в виде констант можно?
Нет, зачем? Если заполнять одними и теми же данными, то будет крыть заказы.
 
  • Like
Реакции: crazy duck
Нет, зачем? Если заполнять одними и теми же данными, то будет крыть заказы.

Согласен, но я делаю всего 2 заказа в день. Попробую разобраться.
Спасибо вам больше за скрипт.
 
Я беру данные адреса из экселя, а в эксель уже сделал коверки другой утилитой.
А вообще 0xFF сделал свой скрипт по заполнению адреса, включая коверки. Поищи его скрипт.
Здравствуйте, когда я использую адрес в США, он не работает, как мне его настроить? ?
 
  • Like
Реакции: disk_Qx
я немного запутался, есть ли актуальный скрипт для сбора трек номеров? у меня предположим 30 аккаунтов, как с них собрать все треки?
PS Можно ли это делать с 1 ip адреса?
 
Последнее редактирование:
Скрестил два скрипта. Вроде работает. Формат:

1234 5678 9012 3456, 2021/11, 111, JOHN SMITH, description

JavaScript:
// ==UserScript==
// @name         Aliexpress order input card filler
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  try to take over the world!
// @author       Andronio / NetSVrn
// @match        https://shoppingcart.aliexpress.com/order/secondPayment.htm?cashierRequestToken=*
// @grant        none
// ==/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();

})();


    async function cardFunc() {
        let cardNumber = document.getElementById('cardNum');
        let cardHold   = document.getElementById('cardHolder');
        let dateExpire = document.getElementById('expires');
        let codeCVC    = document.getElementById('cvv');
        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;


        setInput(cardNumber, mass[0]);
        setInput(cardHold, mass[3]);
        let date = mass[1].slice(5,7) + '/' + mass[1].slice(2,4);
        setInput(dateExpire, date);
        setInput(codeCVC, mass[2]);
        document.querySelector('input.next-checkbox-input').click(); // Снять галку
        await waitForElement('.save-card-info-confirm button:nth-child(1)', 500, 10);
        await waitForElement('.next-loading-tip', 500, 10);
        await waitForElement('.next-loading-tip', 500, 10, true);
        await sleep(200);
        document.querySelector('.save-card-info-confirm button:nth-child(1)').click();
        await waitForElement('input.next-checkbox-input:checked', 500, 10, true);
        await sleep(200);
        document.querySelector('button').click();
    }


    function setInput(input, value) {
        if (!input) {
            return;
        }

        const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
        nativeInputValueSetter.call(input, value);
        input.dispatchEvent(new Event('change', {bubbles: true}));
        input.dispatchEvent(new Event('keyup', {bubbles: true}));
        input.dispatchEvent(new Event('keydown', {bubbles: true}));
        input.dispatchEvent(new Event('keypress', {bubbles: true}));
        input.dispatchEvent(new Event('input', {bubbles: true}));
        input.dispatchEvent(new Event('blur', {bubbles: true}));
    };

    function waitForElement(selectors, interval = 250, seconds = 0, waitForDisappear = false) {

        return new Promise((resolve) => {
            if (!Array.isArray(selectors)) {
                selectors = [selectors];
            }

            seconds = seconds * 1000;

            const startTime = Date.now();
            const check = () => {
                let found = selectors.some(s => {
                    const el = document.querySelector(s);
                    return !!(el && isVisible(el));
                })

                if (!waitForDisappear && found || waitForDisappear && !found) {
                    return resolve(true);
                }

                if (seconds > 0 && Date.now() - startTime > seconds) {
                    return resolve(false);
                }

                setTimeout(check, interval);
            };

            check();
        });
    };
    function isVisible(e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
    };
    async function sleep(ms) {
        return new Promise((resolve) => setTimeout(resolve, ms));
    };
Как им пользоватся, добавил в тамперманки. Куда прописать шаблон карты? Или карта сама генерируется?
 
Последнее редактирование:
в дизайне изменили названия классов
Код:
case 4: //Ждем список областей, выбираем область
let allOblast = document.querySelectorAll('.selector-item')[0].querySelectorAll('.next-overlay-wrapper .next-menu-item');

нужно изменить на

Код:
case 4:
var allOblast = document.querySelectorAll('.next-overlay-wrapper .next-menu-item');

по анологии остальные 2 строки


лениво реквест в гите делать
Подкинь шаблон как остальные поменять, поменял. Не работает(
---------Двойное сообщение соединено: ---------
1234 5678 9012 3456, 2021/11, 111, JOHN SMITH, description
Как им пользоватся, добавил в тамперманки. Куда прописать шаблон карты? Или карта сама генерируется?
Разобрался, должно быть поле для ввода шаблона. Но оно не появляется в корзине, пробовал новую ссылку добавлять в скрипт, не помогает. Как исправить подскажите пожалуйста?
 
Последнее редактирование:
Перестал работать скрипт входа на алиэкпресс с решением слайдера и капчи. У всех так или только у меня?
 
у меня перестал работать на com версии, на ru работает
 
Последнее редактирование:
На данный момент у меня все работает.
Да, заработал, если переходить по ссылке https://login.aliexpress.ru/ или https://login.aliexpress.com/
Но если переходить по ссылке (мои заказы) - https://login.aliexpress.com/?returnUrl=https - то перестал срабатывать.
Китайцы поменяли регистр этой ссылки:
раньше было - https://login.aliexpress.com/?return_url=https
теперь стало - https://login.aliexpress.com/?returnUrl=https
В скрипт дописал новый регистр, но все-равно не срабатывает.
Эта строка нужна чтобы сразу входить во вкладку "мои заказы", а так сначала нужно залогиниться, а потом переходить в мои заказы.
Раньше работало - была вынесена вкладка в браузере "мои заказы" - нажимал ее - перекидывало на логин, логинился и автоматически переходило во вкладку "мои заказы".
 
Последнее редактирование:
  • Like
Реакции: opolon
Да, заработал, если переходить по ссылке https://login.aliexpress.ru/ или https://login.aliexpress.com/
Но если переходить по ссылке (мои заказы) - https://login.aliexpress.com/?returnUrl=https - то перестал срабатывать.
Китайцы поменяли регистр этой ссылки:
раньше было - https://login.aliexpress.com/?return_url=https
теперь стало - https://login.aliexpress.com/?returnUrl=https
В скрипт дописал новый регистр, но все-равно не срабатывает.
Эта строка нужна чтобы сразу входить во вкладку "мои заказы", а так сначала нужно залогиниться, а потом переходить в мои заказы.
Раньше работало - была вынесена вкладка в браузере "мои заказы" - нажимал ее - перекидывало на логин, логинился и автоматически переходило во вкладку "мои заказы".

Все верно. В заказы входить сразу - гораздо удобней. Очень нужно исправить.

Причем если входить в https://login.aliexpress.com/ В ПЕРВЫЙ раз через инкогнито, то может открыть как старую версию входа, так и новую. Какой то рандом.

Но у меня и при старой версии входа - вход через скрипт с капчей не работает. У всех так?
 
  • Like
Реакции: MelOl
@Andronio Дружище, просьба подкорректировать скрипт. Вход по login.aliexpress.com не работает
 
  • Like
Реакции: Kish и MelOl
и у меня перестал входить на com. на ru еще пашет