@Andronio, приветствую. Подскажи, как решить проблему авторизации вебмани через Яндекс скрипта. При включенном ВПН ни в какую не хочет, но с российского статичного домашнего ИП скрипт без проблем работает, в какую сторону смотреть хотя бы?
@Andronio, приветствую. Подскажи, как решить проблему авторизации вебмани через Яндекс скрипта. При включенном ВПН ни в какую не хочет, но с российского статичного домашнего ИП скрипт без проблем работает, в какую сторону смотреть хотя бы?
Пара пожеланий по поводу автоматизации работы с добивкой.
1. Сделать автонажатие галки "Выбрать все" в корзине.
2. Сделать кнопку для отмены добивки, которая бы отменяла добивку и удаляла её со страницы заказов.
До переустановки винды у меня стоял скрипт который показывал в меню оповещений все хайды на 10 последних страницах, теперь не могу его найти. Буду благодарен за прекращение моих поисков, уже реально около часа ищу.
Спасибо
Не, ну вам вообще не угодишь! Может просто в закладки добавить главную страницу?
---------Двойное сообщение соединено: ---------
Исправил недоработку, когда не менялась страна в скрипте смены валюты и страны
Код:
// ==UserScript==
// @name Aliexpress All Currency Changer
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Изменяет валюту на Алиэкспресс
// @author Andronio
// @include https://*aliexpress.ru/*
// @include https://*aliexpress.com/*
// @grant none
// @run-at document-end
// ==/UserScript==
let myCountry = "KZ";
(function repeat() {
'use strict';
let logoPic = document.querySelector(".hm-left");
if (!logoPic) return setTimeout(repeat, 200);
logoPic.innerHTML = `<div class="currency-button" data-curr="USD"><span class="css_flag css_us" style="display:inline"><span class="shipping-text" style="display:inline">USD</span></span></div>
<div class="currency-button" data-curr="RUB"><span class="css_flag css_ru" style="display:inline"><span class="shipping-text" style="display:inline">RUB</span></span></div>`;
let style = document.createElement("style");
style.innerHTML = `.currency-button {
display: inline-block;
padding: 5px 10px;
margin: 20px 0 0 20px;
border: 2px solid black;
border-radius: 0.5em;
cursor:pointer;
}
.no-modify-btn {background-color: OrangeRed;}
.yes-modify-btn {background-color: Lime;}
`;
document.head.append(style);
logoPic.addEventListener("click", btnClickHandler);
})();
function btnClickHandler(event) {
'use strict';
let btn = event.target.closest(".currency-button");
if (!btn) return;
let currency = btn.dataset.curr;
let cookies = document.cookie.split('; ');
let isNeedModif = false;
let isFound = false;
let str;
for (let i = 0; i < cookies.length; i++) {
if (cookies[i].startsWith("aep_usuc_f=")) { // Если нашел нужную куку
let cookie = cookies[i].slice(11).split('&'); // Убираем aep_usuc_f= и разделяем
cookie = cookie.map(elem => { // Смотрим, что в куке
if (elem.startsWith("c_tp=")) {
isFound = true;
if (elem.slice(5) == currency)
return elem;
else {
isNeedModif = true;
return "c_tp=" + currency;
}
} else if (elem.startsWith("region=")) {
isFound = true;
let currCountry = elem.slice(7);
if (myCountry == "")
return elem;
else if (currCountry == myCountry)
return elem
else {
isNeedModif = true;
return "region=" + myCountry;
}
} else return elem;
});
if (!isFound) {
cookie.push("c_tp=" + currency);
if (myCountry != "") cookie.push("region=" + myCountry);
}
str = cookie.join("&");
break;
}
}
if (isNeedModif || !isFound) {
if (window.location.hostname.includes("aliexpress.ru")) {
document.cookie = `aep_usuc_f=${str}; path=/; expires=Tue, 19 Jan 2088 03:14:07 GMT; domain=.aliexpress.ru`;
window.location.reload();
} else if (window.location.hostname.includes("aliexpress.com")) {
document.cookie = `aep_usuc_f=${str}; path=/; expires=Tue, 19 Jan 2088 03:14:07 GMT; domain=.aliexpress.com`;
window.location.reload();
} else {alert("Ошибка в скрипте")};
btn.classList.add("yes-modify-btn");
setTimeout(() => {btn.classList.remove("yes-modify-btn");}, 300);
window.location.reload();
} else {
btn.classList.add("no-modify-btn");
setTimeout(() => {btn.classList.remove("no-modify-btn");}, 300);
}
}
---------Двойное сообщение соединено: ---------
В связи с изменением оформления форума изменил скрипт показа цены купона.
Цена купона берется с сайта 0xFF, за что ему огромное спасибо. Теперь новое окно алиэкспресс не всплывает.
Также добавил настройку, чтобы можно было поставить свои любимые купоны
Код:
let coupon1name = "3,99/4,99";
let = 4.99;
coupon1name - просто название купона, можно писать что угодно в кавычках
coupon1val - верхний номинал купона, без кавычек и десятичное разделение точкой
JavaScript:
// ==UserScript==
// @name Miped.ru coupon currency show2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Показывает курс купона
// @author Andronio
// @match https://mipped.com/f/threads/obsuzhdenie-kuponov-aliexpress*
// @grant GM_xmlhttpRequest
// @connect 1c.now.sh
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
/*
* Здесь начинать править настройки
*/
let itemNumber = "32915345420";
let changeTime = 6; // MSK
let coupon1name = "3,99/4,99";
let coupon1val = 4.99;
let coupon2name = "4/5";
let coupon2val = 5;
let coupon3name = "5/10";
let coupon3val = 10;
/*
* Далее не трогать
*/
let coef = 0;
if (location.href.startsWith("https://mipped.com/f/threads/")) {
showMiped();
let couponCurrency = localStorage.getItem("couponCurrency");
if (!couponCurrency) return requestCurrency();
try {
couponCurrency = JSON.parse(couponCurrency);
} catch {
return requestCurrency();
}
let thresholdTime = new Date();
thresholdTime.setHours(thresholdTime.getHours() - changeTime - 3);
let oldDate = new Date(couponCurrency.date);
if (oldDate.getDate() < thresholdTime.getDate()) return requestCurrency();
coef = couponCurrency.coef;
fillTable();
document.getElementById('couponrequest').dispatchEvent(new Event("input"));
}
function requestCurrency() {
let url = `https://1c.now.sh/api/price?item=${itemNumber}`;
var ret = GM_xmlhttpRequest({
method: "GET",
url: url,
onload: function(res) {
let mydata;
try {
mydata = JSON.parse(res.responseText);
} catch {
console.log("Ошибка JSON");
}
if (mydata.success) {
coef = 4484.66 * mydata.USD * 10 / 7 / mydata.RUB;
fillTable();
let couponCurrency = {};
couponCurrency.date = new Date();
couponCurrency.coef = coef;
localStorage.setItem("couponCurrency", JSON.stringify(couponCurrency));
}
},
onerror: function(res) {
var msg = "An error occurred."
+ "\nresponseText: " + res.responseText
+ "\nreadyState: " + res.readyState
+ "\nresponseHeaders: " + res.responseHeaders
+ "\nstatus: " + res.status
+ "\nstatusText: " + res.statusText
+ "\nfinalUrl: " + res.finalUrl;
console.log(msg);
}
});
}
function showMiped() {
let div = document.createElement('div');
div.className = 'currency';
div.innerHTML = `
<div style="display: inline-block; color: DarkGreen; font-size: 0.8em;">
<table border="1" cellpadding="5">
<tr><th>Купон</th><th>цена</th></tr>
<tr><td>${coupon1name}</td><td id="coupon1">0</td></tr>
<tr><td>${coupon2name}</td><td id="coupon2">0</td></tr>
<tr><td>${coupon3name}</td><td id="coupon3">0</td></tr>
</table>
</div>
<div style="display: inline-block; width: 100px; margin-left: 50px">
<span id="showCalCoupon" style="width:90px; font-size: 1.2em; color: black">10</span><br>
<input type="text" id="couponrequest" value="10" style="width:90px; font-size: 1.2em">
</div>
<div style="display: inline-block; margin-left: 50px">
<button id="refreshCoupon" style="height:50px;width:100px;margin-top:20px">Обновить</button>
</div>`;
div.style.cssText = 'display: flex;';
document.querySelector(".p-header-logo").after(div);
let inputCoupon = document.getElementById('couponrequest');
inputCoupon.addEventListener("input", (event) => {
let couponPrice = document.getElementById('showCalCoupon');
couponPrice.innerText = Math.ceil(event.target.value * coef) / 100;
});
let refreshBtn = document.getElementById('refreshCoupon');
refreshBtn.addEventListener("click", requestCurrency);
}
function fillTable() {
let coupon1 = document.getElementById("coupon1");
coupon1.innerText = Math.ceil(coupon1val * coef) / 100;
let coupon2 = document.getElementById("coupon2");
coupon2.innerText = Math.ceil(coupon2val * coef) / 100;
let coupon3 = document.getElementById("coupon3");
coupon3.innerText = Math.ceil(coupon3val * coef) / 100;
}
}());