// ==UserScript==
// @name Aliexpress Order info getter
// @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.ru/order_list.htm*
// @match https://trade.aliexpress.com/orderList.htm*
// @match https://trade.aliexpress.com/order_list.htm*
// @grant GM_setClipboard
// @noframes
// ==/UserScript==
/*
prodName - Название товара
prodPrice - Цена товара
today - Сегодняшняя дата
orderNum - Номер заказа
\t - Табуляция, переход к следующей ячейке
Строка должна начинаться и заканчиваться символом обратной кавычки
*/
var myStr = `prodName + '\t' + '\t' + prodPrice + '\t' + today + '\t' + orderNum`;
(function () {
'use strict';
if (window.top != window.self) //-- Don't run on frames or iframes
return;
// Рисуем окно с кнопками
var div = document.createElement('div');
div.className = 'mybox';
let orderNumber = document.querySelectorAll(".order-info > .first-row > span.info-body");
if (orderNumber.length == 0) {
div.innerHTML = '<p class="noorders">Нет заказов</p>';
} else {
div.innerHTML = `<input type="button" class="mybutton" value="Все заказы" myattr="-1">`;
for (let i = 0; i < orderNumber.length; i++) {
div.innerHTML += `<input type="button" class="mybutton" value="Заказ N${i}" myattr="${i}">`;
}
}
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;
}
.mybutton {
display: block;
margin-right:auto;
cursor:pointer;
padding: 5px;
}
.redbutton{
background-color: red;
}`
var styleSheet = document.createElement("style")
styleSheet.type = "text/css"
styleSheet.innerText = styles
document.head.append(styleSheet)
let buttons = document.getElementsByClassName('mybutton');
for (let i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('click', buttonClick);
}
})();
function buttonClick(event) {
let num = +event.currentTarget.getAttribute('myattr');
let orderNumber = document.querySelectorAll(".order-info > .first-row > span.info-body");
let product = document.querySelectorAll('.order-item-wraper');
let productPrice = document.querySelectorAll(".amount-num");
let today = formatDate();
let orderString, prodName, prodPrice, orderNum;
if (num > -1) {
// один заказ
let productName = product[num].querySelectorAll(".product-title > a.baobei-name");
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+/)[0].replace(/\./,",");
orderNum = orderNumber[num].innerText;
orderString = eval(myStr);
} else {
// много заказов
orderString = "";
for (let num = 0; num < orderNumber.length; num++) {
let productName = product[num].querySelectorAll(".product-title > a.baobei-name");
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+/)[0].replace(/\./,",");
orderNum = orderNumber[num].innerText;
orderString += eval(myStr);
orderString += "\r\n";
}
}
navigator.clipboard.writeText(orderString).then(function () {
console.log('Async: Copying to clipboard was successful!');
}, function (err) {
console.error('Async: Could not copy text: ', err);
});
window.mybtn = event.currentTarget;
window.mybtn.classList.add("redbutton");
setTimeout(() => window.mybtn.classList.remove("redbutton"), 500);
}
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;
}