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

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

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

  • Да

    Голосов: 289 64,5%
  • Нет

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

  • Всего проголосовало
    448
Доработал скрипт показывающий только залайканые сообщения для mipped.com.
1. На последней странице сообщения не скрываются.
2. Добавил кнопку "Показать скрытые", чтобы показать все сообщения.

JavaScript:
// ==UserScript==
// @name         Miped show only liked messages
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Показывает только залайканые сообщения
// @author       Andronio
// @match        https://mipped.com/f/threads/*
// @grant        none
// @run-at       document-end
// ==/UserScript==
(function repeat() {
    'use strict';

/*
 * Здесь начинать править настройки
*/

let showAfterLikes = 2;
let lastPageFilter = 0;

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

    let nextPage = document.querySelector(".pageNav-jump--next");
    let hasLikes = false;
    if (lastPageFilter || nextPage) {

        let messages = document.querySelectorAll(".message");
        let filtered = false
        messages.forEach(message => {
            let likes = message.querySelector('.reactionsBar-link');
            if (!likes) {
                message.style.display = 'none';
                filtered = true;
            } else {
                let likesCount = likes.innerText.split(/,|\sи\s(?!ещё)/).length;
                if (likesCount == 3) {
                    let addLikes = likes.innerText.match(/(?<=и\sещё\s)\d{1,4}/);
                    if (addLikes) likesCount += +addLikes;
                }
                if (likesCount >= showAfterLikes) hasLikes = true;
                else message.style.display = 'none';
                filtered = true;
            }
        });
        if (filtered) {
            let showBtn = document.createElement('div');
            showBtn.innerHTML = '<button id="liked-show-all" class="button button--cta">Показать скрытые</button>';
            showBtn.style.paddingBottom = '10px';
            document.querySelector('.block-outer').after(showBtn);
            document.getElementById('liked-show-all').addEventListener('click', () => {
                messages.forEach(message => {
                    message.style.display = null;
                });
            });
        }
    }
    if (!hasLikes) {
        if (nextPage) nextPage.click();
    }
})();
Не работает. Доработай, плиз.
 
Сегодня установил, работает.
Какая версия? 1.1? У меня отказывается работать. Проскакивает страницу где есть залайканные сообщения. Тут проверь, пожауйста https://mipped.com/f/threads/obsuzhdenie-kuponov-aliexpress-avgust.161645/page-26
---------Двойное сообщение соединено: ---------
Вкурил почему не показывает. На залайканных сообщениях пишет типа "Kkkramb, Калач, Жоржелоо и 8 других"
Скрипт считает это за 4 лайка, а не 11 как в этом случае. Если ставить в настройках больше 4 лайков - скрипт не срабатывает.
 
Последнее редактирование:
  • Like
Реакции: Qant
Какая версия? 1.1? У меня отказывается работать. Проскакивает страницу где есть залайканные сообщения. Тут проверь, пожауйста https://mipped.com/f/threads/obsuzhdenie-kuponov-aliexpress-avgust.161645/page-26
---------Двойное сообщение соединено: ---------
Вкурил почему не показывает. На залайканных сообщениях пишет типа "Kkkramb, Калач, Жоржелоо и 8 других"
Скрипт считает это за 4 лайка, а не 11 как в этом случае. Если ставить в настройках больше 4 лайков - скрипт не срабатывает.
Да, поменялась надпись на форуме. Исправил.

Ссылка на гитхаб
Прямая ссылка
 
Не знаю реально ли, но можно ли сделать скрипт, который при поиске на авито показывал бы только тех продавцов, которые имеют отзывы? Помогло бы при поиске услуг особенно
 
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();
}
Сделайте пожалуйста чтобы при оплате YooMoney выбиралось "Yandex Wallet"
Спасибо!
 
Последнее редактирование:
Спойлер: Скрипт заполнения данных платежной карты
странное поведение скрипта при переключении на валюту евро.
данные карты вносит и автоматом оплачивает.
с долларом такого не происходит, ждет пока не нажмешь оплатить.
 
]Это понятно )
А почему не взял за основу скрипт из корзины? Добавить данные карты одной строкой ведь удобней, чем каждый раз скрипт править под новые карты.
Хотя, может ты не меняешь карты, тогда всё логично становится.
Скрестил два скрипта. Вроде работает. Формат:

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));
    };
 
  • Like
Реакции: L&M и Author
как ими пользоваться?
 
как ими пользоваться?
автор же приложил шаблон, оформи карту по шаблону, когда дойдешь до оплаты и ввода карты, будет окошко куда тупо вставишь шаблон
 
Ну вот здесь же все расписано с картинками.
---------Двойное сообщение соединено: ---------
Код:
// ==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;
}
а можно к этому скрипту приделать чтобы он и токен акка показывал отдельным пунктом?
40814fb3.gif
 
  • Like
Реакции: kpmtmby и Barss
Воспользовался отличными идеями @future_ и @Evgeniy123 по поводу решения капчи при входе, плюс суперская идея @0xFF по логину и его куски кода собрал в кучу и забацал скрипт входа на алиэкпресс с решением слайдера и капчи.
Может у кого-то есть скрипт на БАС с таким же функционалом? (Слайдер и капча)
 
Может у кого-то есть скрипт на БАС с таким же функционалом? (Слайдер и капча)
А зачем? Неужто в БАСе проблема сделать вход?
---------Двойное сообщение соединено: ---------
а можно к этому скрипту приделать чтобы он и токен акка показывал отдельным пунктом?
40814fb3.gif
Токе акка можно получить только при входе. Этот же скрипт работает уже после логина. Да и перехватить запрос в браузере не так уж просто.
 
  • Like
Реакции: opolon
Привет.
Сегодня скрипт по быстрому заполнению адреса показал ошибку.
Раньше область и город вводились по русски, и как-то прокатывало, сегодня выдавало ошибку.
Поменял на английские названия - сработало. + добавил задержку после области, и нормально вводит.
Вдруг у кого-то что-то подобное будет
 
Использую Скрипт переключения валюты и установки страны на всем Алиэкспресс, кнопки отображаю в селекторе .ng-mobile ( app.png ), но в Русской версии сайта селектор другой styles_title__b9Ckc, скрипт данный селектор не воспринимает и соответственно замена не работает. Подскажите пожалуйста как сделать, чтобы кнопки переключения валюты были на Ru и Global версии сайта?
 
  • Like
Реакции: Ayuna и Darson
Может кто-нибудь может обновить скрипт для оплаты webmoney? Уже давновато не работает.