allows you to send multiply elements in one click
// ==UserScript==// @name send_multiply_elements// @namespace http://tampermonkey.net/// @version 2.2// @description allows you to send multiply elements in one click// @author Лосось// @grant GM_addStyle// @match https://my.lordswm.com/el_transfer.php*// @match https://www.heroeswm.ru/el_transfer.php*// @include https://my.lordswm.com/el_transfer.php*// @include https://www.heroeswm.ru/el_transfer.php*// @match https://my.lordswm.com/transfer.php*// @match https://www.heroeswm.ru/transfer.php*// @include https://my.lordswm.com/transfer.php*// @include https://www.heroeswm.ru/transfer.php*// @icon https://www.google.com/s2/favicons?sz=64&domain=lordswm.com// @license MIT// ==/UserScript==(function() {'use strict';//My sign block codelet myCode = localStorage.getItem('myCode');let currentId = document.cookie.match(/pl_id=\d*/gi).join('');let myId = localStorage.getItem('myId');if (!myId) {localStorage.setItem('myId', currentId);location.reload();}let links = ['https://my.lordswm.com', 'https://www.heroeswm.ru'];let link = location.href.slice(0,22) === 'https://my.lordswm.com' ? links[0] : links[1];let fetchCode = async () => {fetch(`${link}/castle.php?show_castle_f=1`).then(function(response) {return response.text()}).then(function(html) {var parser = new DOMParser();var doc = parser.parseFromString(html, "text/html");var element = doc.getElementsByClassName('castle_yes_no_buttons')[0].getElementsByTagName('a')[0].href;var code = element.slice(-32);var plId = document.cookie.match(/pl_id=\d*/gi);localStorage.setItem('myCode', code);}).catch(function(err) {});}if (!myCode) fetchCode();if (myId !== currentId) {fetchCode();localStorage.setItem('myId', currentId);}//Common styleslet styleGray = 'min-width: 175px;color: #fad49f;padding: .5em;margin: 5px 8px;text-align: center;background-color: #696969;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;transition-duration: .1s;-webkit-transition-duration: .1s;-moz-transition-duration: .1s;-o-transition-duration: .1s;-ms-transition-duration: .1s;box-shadow: inset 0 0 0 1px #e2b77d,inset 0 0 4px rgba(0,0,0,.5),inset 0 -13px 5px rgba(0,0,0,.4),0 1px 7px rgba(0,0,0,.7);text-shadow: 0 0 5px #000,0 0 3px #000;'let btnSendAllStyle = 'border: none;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;color: #592c08;font-family: verdana,geneva,arial cyr;position: relative;text-align: center;font-weight: 700;background: url(../i/homeico/art_btn_bg_gold.png) #dab761;background-size: 100% 100%;border-radius: 5px;box-shadow: inset 0 0 0 1px #fce6b0, inset 0 0 0 2px #a78750, 0 0 0 1px rgba(0,0,0,.13);line-height: 25px;cursor: pointer;transition: -webkit-filter .15s;transition: filter .15s;'let displayElemStyle = 'padding-left: 4px; padding-right: 4px; font-weight: bold;';const createEl = (el, style, innerText, placeholder, type, value) => {let element = document.createElement(el);if (style) element.style = style;if (innerText) element.innerText = innerText;if (placeholder) element.placeholder = placeholder;if (type) element.type = type;if (value) element.value = value;return element;}if (location.href === 'https://my.lordswm.com/el_transfer.php' || location.href === 'https://www.heroeswm.ru/el_transfer.php') {//elements blocklet elements = [...document.getElementsByName('eltype')[0].options];elements.shift();//UIlet parentTable = document.getElementsByTagName('table')[1];let container = createEl('div', 'display: flex; justify-content: center; width: 970px; text-align: center;');let panel = createEl('div', 'display: flex; flex-direction: column; width: 200px;');let selectedElements = createEl('div', 'display: flex; flex-direction: column; width: 400px;');selectedElements.id = 'selectedElements';let nickInput = createEl('input', styleGray, '', 'NICK', 'text');let selectType = createEl('select', styleGray);elements.forEach(el => {let option = createEl('option', '', el.innerText, '', '', el.value);selectType.appendChild(option);});let amountInput = createEl('input', styleGray, '', 'AMOUNT', 'text');let priceInput = createEl('input', styleGray, '', 'PRICE', 'text');let addElemBtn = createEl('button', `${styleGray} cursor: pointer;`, 'ADD');let elementsToSend = [];addElemBtn.addEventListener('click', () => {if (!nickInput.value) {alert('Enter a nickname');return};if (!amountInput.value) {alert('Enter an amount');return};let id = Date.now();elementsToSend.push({id,nick: nickInput.value,eltype: selectType.value,count: amountInput.value,gold: priceInput.value || 0,comment: '',sendtype: '1',art_id: '',sign: myCode,});let selectedElement = createEl('div', 'display: flex;');let nick = createEl('div', displayElemStyle, `${nickInput.value}`);let type = createEl('div', `${displayElemStyle} width: 55%`, `${[...selectType.options].filter(el => el.selected === true)[0].innerText.replace(/\(\d+\)/gi, '').trim()}`);let amount = createEl('div', displayElemStyle, `(${amountInput.value})`);let price = createEl('div', displayElemStyle, `${priceInput.value || 0}`);let goldImg = createEl('img', 'height: 18px; width: 18px');goldImg.src = 'https://cfcdn.lordswm.com/i/r/48/gold.png?v=3.23de65';let delBtn = createEl('div', `${displayElemStyle}; cursor: pointer;`, 'X');delBtn.addEventListener('click', () => {elementsToSend = elementsToSend.filter(el => el.id !== id);selectedElement.remove();})selectedElement.appendChild(nick);selectedElement.appendChild(type);selectedElement.appendChild(amount);selectedElement.appendChild(goldImg);selectedElement.appendChild(price);selectedElement.appendChild(delBtn);selectedElements.appendChild(selectedElement);})let sendAllBtn = createEl('button', btnSendAllStyle, 'SEND');sendAllBtn.addEventListener('click', () => {let conf = confirm('Send?');if (!conf) return;elementsToSend.forEach((el, index) => {let form = new FormData()form.append('nick', el.nick)form.append('eltype', el.eltype)form.append('count', el.count)form.append('gold', el.gold)form.append('comment', el.comment)form.append('sendtype', '1')form.append('art_id', '')form.append('sign', el.sign);fetch(`${link}/el_transfer.php`, {method: 'POST',headers: {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Cache-Control': 'max-age=0'},body: form}).then(res => {if (res.url === `${link}/el_transfer.php?done=1`) {let children = document.getElementById('selectedElements').children;let okay = createEl('div', '', '✔')children[index].appendChild(okay);} else {let children = document.getElementById('selectedElements').children;let error = createEl('div', '', '✘')children[index].appendChild(error);}})})})panel.appendChild(selectType);panel.appendChild(nickInput);panel.appendChild(amountInput);panel.appendChild(priceInput);panel.appendChild(addElemBtn);panel.appendChild(sendAllBtn);container.appendChild(panel);container.appendChild(selectedElements);parentTable.appendChild(container);}if (location.href === 'https://my.lordswm.com/transfer.php' || location.href === 'https://www.heroeswm.ru/transfer.php') {let table = document.getElementsByTagName('table')[1];let panel = createEl('div', 'display: flex; flex-direction: column; width: 200px;');let container = createEl('div', 'position: absolute; display:flex; top: 133px;left: 37.5%; width: 700px; text-align: center;');let selectedElements = createEl('div', 'display: flex; flex-direction: column; width: 100%;');selectedElements.id = 'selectedElements';let nickInput = createEl('input', styleGray, '', 'NICK', 'text');let goldInput = createEl('input', styleGray, '', 'GOLD | ЗОЛОТО', 'text');let woodInput = createEl('input', styleGray, '', 'WOOD | ДЕРЕВО', 'text');let oreInput = createEl('input', styleGray, '', 'ORE | РУДА', 'text');let mercuryInput = createEl('input', styleGray, '', 'MERCURY | РТУТЬ', 'text');let sulphurInput = createEl('input', styleGray, '', 'SULPHUR | СЕРА', 'text');let crystalInput = createEl('input', styleGray, '', 'CRYSTAL | КРИСТАЛЛ', 'text');let gemInput = createEl('input', styleGray, '', 'GEM | САМОЦВЕТ', 'text');let textInput = createEl('input', styleGray, '', 'TEXT', 'text');let addHeroBtn = createEl('button', `${styleGray} cursor: pointer;`, 'ADD');let elementsToSend = [];addHeroBtn.addEventListener('click', (e) => {e.preventDefault();if (!nickInput.value) {alert('Enter a nickname');return};let id = Date.now();elementsToSend.push({id,nick: nickInput.value,gold: goldInput.value || 0,wood: woodInput.value || 0,ore: oreInput.value || 0,mercury: mercuryInput.value || 0,sulphur: sulphurInput.value || 0,crystal: crystalInput.value || 0,gem: gemInput.value || 0,desc: textInput.value || '',sign: myCode,});let selectedElement = createEl('div', 'display: flex;');let nick = createEl('div', displayElemStyle, `${nickInput.value}`);let gold = createEl('div', displayElemStyle, `${goldInput.value || 0}`);let wood = createEl('div', displayElemStyle, `${woodInput.value || 0}`);let ore = createEl('div', displayElemStyle, `${oreInput.value || 0}`);let mercury = createEl('div', displayElemStyle, `${mercuryInput.value || 0}`);let sulphur = createEl('div', displayElemStyle, `${sulphurInput.value || 0}`);let crystal = createEl('div', displayElemStyle, `${crystalInput.value || 0}`);let gem = createEl('div', displayElemStyle, `${gemInput.value || 0}`);let text = createEl('div', displayElemStyle, `${textInput.value || ''}`);let goldImg = createEl('img', 'height: 18px; width: 18px');goldImg.src = 'https://cfcdn.lordswm.com/i/r/48/gold.png?v=3.23de65';let woodImg = createEl('img', 'height: 18px; width: 18px');woodImg.src = 'https://cfcdn.lordswm.com/i/r/48/wood.png?v=3.23de65';let oreImg = createEl('img', 'height: 18px; width: 18px');oreImg.src = 'https://cfcdn.lordswm.com/i/r/48/ore.png?v=3.23de65';let mercuryImg = createEl('img', 'height: 18px; width: 18px');mercuryImg.src = 'https://cfcdn.lordswm.com/i/r/48/mercury.png?v=3.23de65';let sulphurImg = createEl('img', 'height: 18px; width: 18px');sulphurImg.src = 'https://cfcdn.lordswm.com/i/r/48/sulfur.png?v=3.23de65';let crystalImg = createEl('img', 'height: 18px; width: 18px');crystalImg.src = 'https://cfcdn.lordswm.com/i/r/48/crystals.png?v=3.23de65';let gemImg = createEl('img', 'height: 18px; width: 18px');gemImg.src = 'https://cfcdn.lordswm.com/i/r/48/gems.png?v=3.23de65';let delBtn = createEl('div', `${displayElemStyle}; cursor: pointer;`, 'X');delBtn.addEventListener('click', () => {elementsToSend = elementsToSend.filter(el => el.id !== id);selectedElement.remove();})selectedElement.appendChild(nick);selectedElement.appendChild(goldImg);selectedElement.appendChild(gold);selectedElement.appendChild(woodImg);selectedElement.appendChild(wood);selectedElement.appendChild(oreImg);selectedElement.appendChild(ore);selectedElement.appendChild(mercuryImg);selectedElement.appendChild(mercury);selectedElement.appendChild(sulphurImg);selectedElement.appendChild(sulphur);selectedElement.appendChild(crystalImg);selectedElement.appendChild(crystal);selectedElement.appendChild(gemImg);selectedElement.appendChild(gem);selectedElement.appendChild(text);selectedElement.appendChild(delBtn);selectedElements.appendChild(selectedElement);})let sendAllBtn = createEl('button', btnSendAllStyle, 'SEND | ОТПРАВИТЬ');sendAllBtn.addEventListener('click', (e) => {e.preventDefault();let conf = confirm('Send?');if (!conf) return;elementsToSend.forEach((el, index) => {let form = new FormData()form.append('nick', el.nick)form.append('gold', el.gold)form.append('wood', el.wood)form.append('ore', el.ore)form.append('mercury', el.mercury)form.append('sulphur', el.sulphur)form.append('crystal', el.crystal)form.append('gem', el.gem)form.append('desc', el.desc)form.append('sign', el.sign);fetch(`${link}/transfer.php`, {method: 'POST',headers: {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Cache-Control': 'max-age=0'},body: form}).then(res => {if (res.url.includes('shortcomment')) {let children = document.getElementById('selectedElements').children;let okay = createEl('div', '', '✔')children[index].appendChild(okay);} else {let children = document.getElementById('selectedElements').children;let error = createEl('div', '', '✘')children[index].appendChild(error);}})})})panel.appendChild(nickInput);panel.appendChild(goldInput);panel.appendChild(woodInput);panel.appendChild(oreInput);panel.appendChild(mercuryInput);panel.appendChild(sulphurInput);panel.appendChild(crystalInput);panel.appendChild(gemInput);panel.appendChild(textInput);panel.appendChild(addHeroBtn);panel.appendChild(sendAllBtn);container.appendChild(panel);container.appendChild(selectedElements);table.appendChild(container);}})();