您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Отправить несколько переводов золота за раз
当前为
// ==UserScript== // @name HWM_CommitMultipleTransfers // @namespace Небылица // @version 1.21 // @description Отправить несколько переводов золота за раз // @author Небылица // @include /^https{0,1}:\/\/((www|qrator)\.heroeswm\.ru|178\.248\.235\.15)\/transfer\.php.*/ // ==/UserScript== (function() { 'use strict'; // Настройки – указание уникального значения sign и времени задержки var sign = ""; // вписать свой sign var delay = 1000; // время ожидания между запросами в мс //============<Вспомогательные функции>============// function sendPOSTRequest(url, params){ // Универсалка для отправки POST-запроса var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send(params); return true; } function encodeCP1251(text){ // Спасибо Граде за функцию, взял как есть:) Перекодирует русский текст так, чтобы при отправке запроса не выходили кракозябры var cp1251_to_utf8 = { 'А': '%C0', 'Б': '%C1', 'В': '%C2', 'Г': '%C3', 'Д': '%C4', 'Е': '%C5', 'Ж': '%C6', 'З': '%C7', 'И': '%C8', 'Й': '%C9', 'К': '%CA', 'Л': '%CB', 'М': '%CC', 'Н': '%CD', 'О': '%CE', 'П': '%CF', 'Р': '%D0', 'С': '%D1', 'Т': '%D2', 'У': '%D3', 'Ф': '%D4', 'Х': '%D5', 'Ц': '%D6', 'Ч': '%D7', 'Ш': '%D8', 'Щ': '%D9', 'Ъ': '%DA', 'Ы': '%DB', 'Ь': '%DC', 'Э': '%DD', 'Ю': '%DE', 'Я': '%DF', 'а': '%E0', 'б': '%E1', 'в': '%E2', 'г': '%E3', 'д': '%E4', 'е': '%E5', 'ж': '%E6', 'з': '%E7', 'и': '%E8', 'й': '%E9', 'к': '%EA', 'л': '%EB', 'м': '%EC', 'н': '%ED', 'о': '%EE', 'п': '%EF', 'р': '%F0', 'с': '%F1', 'т': '%F2', 'у': '%F3', 'ф': '%F4', 'х': '%F5', 'ц': '%F6', 'ч': '%F7', 'ш': '%F8', 'щ': '%F9', 'ъ': '%FA', 'ы': '%FB', 'ь': '%FC', 'э': '%FD', 'ю': '%FE', 'я': '%FF', 'Ё': '%A8', 'ё': '%B8', ' ': '%20', '!': '%21', '(': '%28', ')': '%29', '*': '%2A', '+': '%2B', ',': '%2C', '-': '%2D', '.': '%2E', '/': '%2F' }; var result = ''; for(var i = 0; i < text.length; ++i) { var is_in_array = cp1251_to_utf8[text[i]] != undefined; if(is_in_array) result += cp1251_to_utf8[text[i]]; else result += text[i]; } return result; } function isNaturalNumber(n) { // Проверка натуральности числа n = n.toString(); var n1 = Math.abs(n), n2 = parseInt(n, 10); return !isNaN(n1) && n2 === n1 && n1.toString() === n && n1 !== 0; } function queryWrapper(nicknames, amounts, descriptions, i, sign, delay, urlAfter, e){ // Обёртка для цикличного отправщика запросов i++; if (i<nicknames.length){ sendPOSTRequest("transfer.php", "nick=" + encodeCP1251(nicknames[i]) + "&gold=" + amounts[i] + "&wood=0&ore=0&mercury=0&sulphur=0&crystal=0&gem=0&desc=" + encodeCP1251(descriptions[i]) + "&sign=" + sign); e.target.innerHTML = "Отправляем... " + (i+1).toString() + "/" + nicknames.length.toString(); window.setTimeout(function(){queryWrapper(nicknames, amounts, descriptions, i, sign, delay, urlAfter, e);}, delay); } else { // закончили отправку, открываем страницу urlAfter window.setTimeout(function(){var newWindow = window.open(urlAfter, "_self");}, delay); } } //============</Вспомогательные функции>============// //============<Вывод формы>============// var form = document.getElementsByName("f")[0].parentNode; form.innerHTML = "<br><textarea id=nicknames cols=20 rows=10 placeholder=Ники></textarea><textarea id=amounts cols=8 rows=10 placeholder=Суммы></textarea><textarea id=descriptions cols=50 rows=10 placeholder=Подписи></textarea><br><form id=mode><input type=radio name=mode value=fromtop checked>Сверху вниз</input><br><input type=radio name=mode value=frombottom>Снизу вверх</input></form><button type=button id=submit>Отправить</button>"; form.style = "text-align:center;"; //============</Вывод формы>============// //============<Обработка данных формы>============// var button = document.getElementById("submit"); button.onclick = function(e){ try{ console.log(e); e.preventDefault(); e.target.innerHTML = "Отправляем..."; e.target.disabled = true; // Вытаскиваем из страницы заполненные поля формы var nicknames = document.getElementById("nicknames").value.split(/\r?\n/); var amounts = document.getElementById("amounts").value.split(/\r?\n/); var descriptions = document.getElementById("descriptions").value.split(/\r?\n/); var mode = document.querySelector('input[name = "mode"]:checked').value; var idHref = document.querySelector("a[href^=\"pl_hunter_stat.php\"]").getAttribute("href"); var urlAfter = "http://" + location.hostname + "/pl_transfers.php?id=" + idHref.split("=")[1]; //============<Обёртка с проверкой корректности введённых данных>============// // Проверка одинаковости количества строк в полях if (nicknames.length == amounts.length && amounts.length == descriptions.length){ // Проверка того, что все указанные суммы золота – натуральные числа var amountsCorrect = 1; for (var i=0; i<amounts.length; i++){ if (!isNaturalNumber(parseInt(amounts[i],10))){ alert("Суммы золота для переводов должны быть натуральными числами!"); e.target.innerHTML = "Отправить"; e.target.disabled = false; amountsCorrect = 0; break; } } // Если всё норм, идём дальше if (amountsCorrect){ // Переворачиваем массивы, если выбран вариант "снизу вверх" if (mode === "frombottom") { nicknames.reverse(); amounts.reverse(); descriptions.reverse(); } // Делаем POST-запросы по количеству строк в полях и переходим на заданную страницу после queryWrapper(nicknames, amounts, descriptions, -1, sign, delay, urlAfter, e); } } else { alert("Не совпадает количество строк в полях!"); e.target.innerHTML = "Отправить"; e.target.disabled = false; } //============</Обёртка с проверкой корректности введённых данных>============// } catch (e){ console.log(e); } }; //============</Обработка данных формы>============// })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址