您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Выставление лота из инвентаря, сохранение цены для предмета
当前为
// // ==UserScript== // @name hwm_inventory_new_lot // @author Pahan https://greasyfork.org/uk/users/18377-pahan // @namespace hwm_pahan // @description Выставление лота из инвентаря, сохранение цены для предмета // @homepage https://greasyfork.org/uk/scripts/13223-hwm-inventory-new-lot // @icon http://dcdn.heroeswm.ru/avatars/30/nc-5/30547.gif // @version 1.71 // @encoding utf-8 // @include http://*heroeswm.ru/inventory.php* // @include http://*heroeswm.ru/auction_new_lot.php* // @include http://*lordswm.com/inventory.php* // @include http://*lordswm.com/auction_new_lot.php* // @include http://178.248.235.15/inventory.php* // @include http://178.248.235.15/auction_new_lot.php* // @grant GM_deleteValue // @grant GM_getValue // @grant GM_listValues // @grant GM_setValue // @grant GM_addStyle // @grant GM_log // @grant GM_openInTab // @grant GM_xmlhttpRequest // ==/UserScript== var version = '1.71'; var str_url = 'https://greasyfork.org/uk/scripts/13223-hwm-inventory-new-lot'; var str_script_name = 'Новый лот из инвентаря'; var str_url_aut = '/sms-create.php?mailto=Pahan&subject=Скрипт: '+str_script_name+' v'+version+'. Найдена ошибка:'; // settings LNewLotDurationDef = '3'; // settings end if (typeof GM_deleteValue != 'function') { this.GM_getValue=function (key,def) {return localStorage[key] || def;}; this.GM_setValue=function (key,value) {return localStorage[key]=value;}; this.GM_deleteValue=function (key) {return delete localStorage[key];}; this.GM_addStyle=function (key) { var style = document.createElement('style'); style.textContent = key; document.querySelector("head").appendChild(style); } } if (typeof GM_listValues != 'function') { this.GM_listValues=function () { var values = []; for (var i=0; i<localStorage.length; i++) { values.push(localStorage.key(i)); } return values; } } function addEvent(elem, evType, fn) { // elem["on" + evType] = fn; if (elem.addEventListener) { elem.addEventListener(evType, fn, false); } else if (elem.attachEvent) { elem.attachEvent("on" + evType, fn); } else { elem["on" + evType] = fn; } } function $(id) { return document.querySelector(id); } function URLAttrValueGet(attr_name, aurl) { attr_name = attr_name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]" + attr_name + "=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( aurl ); if( results == null ) return ""; else return results[1]; } // ----------------------------------------------- var GlobalCultureName = location.href.match('lordswm') ? "en-US" : "ru-RU", GlobalStrings = { "ru-RU" : { Sell : "Пр-ь:", _30m : "30м", _1h : "1ч", _3h : "3ч", _6h : "6ч", _12h : "12ч", _1d : "1д", _2d : "2д", _3d : "3д", }, "en-US" : { Sell : "Sell:", _30m : "30m", _1h : "1h", _3h : "3h", _6h : "6h", _12h : "12h", _1d : "1d", _2d : "2d", _3d : "3d", } }, GlobalLocalizedString = GlobalStrings[GlobalCultureName]; // ----------------------------------------------- function GetProchkaInfo(ALink) { var LElem = ALink.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode; var regex = /\:\s+(\d+\/\d+)\<br\>/; var regex_res = regex.exec(LElem.innerHTML); if(regex_res) return regex_res[1]; else return ''; } function CheckCanSell(ALink) { var LElem = ALink.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode; var LLinks = LElem.querySelectorAll('a[href*="art_transfer.php"]'); return (LLinks && (LLinks.length == 1)); } function AddNewLotHref(ALink, AURL, ADurationDisp, ADuration) { ALink.parentNode.appendChild(document.createTextNode(' ')); LNewLotHref = document.createElement('a'); LNewLotHref.href = AURL + '&d=' + ADuration; LNewLotHref.innerHTML = ADurationDisp; ALink.parentNode.appendChild(LNewLotHref); } function SetTimer_ProcessMain() { setTimeout(AddNewLotHrefs, 10); } function AddNewLotHrefs() { var LLinks = document.querySelectorAll('a[href^="art_info.php"]'); var LLink; if (LLinks) { for(i = 0; i < LLinks.length; i++) { LLink = LLinks[i]; if (CheckCanSell(LLink)) { var LName = LLink.children[0].innerHTML + ' ' + GetProchkaInfo(LLink); var LURL = '/auction_new_lot.php?art=' + encodeURIComponent(LName); var LLinksTest = LLink.parentNode.querySelectorAll('a[href^="' + LURL + '"]'); if (LLinksTest && (LLinksTest.length > 0)) continue; LLink.parentNode.appendChild(document.createElement('br')); // LLink.parentNode.appendChild(document.createTextNode('»»')); LLink.parentNode.appendChild(document.createTextNode(GlobalLocalizedString.Sell)); // LNewLotHref = document.createElement('a'); // LNewLotHref.href = LURL; // LNewLotHref.innerHTML = GlobalLocalizedString.Sell; // LLink.parentNode.appendChild(LNewLotHref); AddNewLotHref(LLink, LURL, GlobalLocalizedString._30m, '30m'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._1h, '1h'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._3h, '3h'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._6h, '6h'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._12h, '12h'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._1d, '1d'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._2d, '2d'); AddNewLotHref(LLink, LURL, GlobalLocalizedString._3d, '3d'); } } } } //---------------------------------------- function PriceTrimNewLotForm() { var LPriceEl = document.forms.f.price; LPriceEl.value = LPriceEl.value.trim().replace(/[^\d]/g, ''); } function SavePrice() { var LSelect = document.forms.f.item; var LPrice = parseInt(document.forms.f.price.value); var LName = LSelect.options[LSelect.selectedIndex].text.split(' (')[0].split(' [i]')[0]; if (LName != '') { LInfo = document.createTextNode(''); LInfo = $('#save_price_info'); if (!LInfo) { LInfo = document.createElement('b'); LInfo.id = 'save_price_info'; $('#id_save_price').parentNode.appendChild(LInfo); } if (LPrice && (LPrice != 0) && (LPrice != '')) { GM_setValue(LName, LPrice); LInfo.innerHTML = 'Сохранена цена ' + LPrice + ' для артефакта "' + LName + '"'; } else { GM_deleteValue(LName); LInfo.innerHTML = 'Удалена цена для артефакта "' + LName + '"'; } } } function LoadPrice() { var LSelect = document.forms.f.item; var LPriceEl = document.forms.f.price; var LName = LSelect.options[LSelect.selectedIndex].text.split(' (')[0].split(' [i]')[0]; LPriceEl.value = GM_getValue(LName, '0'); } function DecrementPrice() { var LPriceEl = document.forms.f.price; LPriceEl.value = parseInt(LPriceEl.value) - 1; } function IncrementPrice() { var LPriceEl = document.forms.f.price; LPriceEl.value = parseInt(LPriceEl.value) + 1; } function setCheck(ch) { if( GM_getValue( ch ) && GM_getValue( ch ) == 1 ) GM_setValue( ch , 0 ); else GM_setValue( ch , 1 ); } function close_setting_form() { bg = $('#bgOverlay_inventory_nl') ; bgc = $('#bgCenter_inventory_nl') ; if( bg ) { bg.style.display = bgc.style.display = 'none' ; } } function open_setting_form() { bg = $('#bgOverlay_inventory_nl') ; bgc = $('#bgCenter_inventory_nl') ; if( !bg ) { bg = document.createElement('div') ; bg.id = 'bgOverlay_inventory_nl' ; document.body.appendChild( bg ); bg.style.position = 'absolute' ; bg.style.left = '0'; bg.style.width = '100%'; bg.style.height = '100%'; bg.style.background = "#000000"; bg.style.opacity = "0.5"; bg.addEventListener( "click", close_setting_form , false ); bgc = document.createElement('div') ; bgc.id = 'bgCenter_inventory_nl' ; document.body.appendChild( bgc ); bgc.style.position = 'absolute' ; bgc.style.width = '600px'; bgc.style.background = "#F6F3EA"; bgc.style.left = ( ( document.body.offsetWidth - 400 ) / 2 ) + 'px' ; bgc.style.zIndex = "1105"; } bgc.innerHTML = '<div style="border:1px solid #abc;padding:5px;margin:2px;">' + ' <div style="float:right;border:1px solid #abc;width:15px;height:15px;text-align:center;cursor:pointer;" id="bt_close_inventory_nl" title="Закрыть">x</div>' + ' <center>' + ' <table>' + ' <tr>' + ' <td><b>'+str_script_name+' <font style="color:#0070FF;">'+version+'</font></b><hr/></td>' + ' </tr>' + ' <tr>' + ' <td><b>Настройки:</b></td>' + ' </tr>' + ' <tr>' + ' </tr>' + ' <tr>' + ' <td>Пока пусто</td>' + ' </tr>' + ' <tr><td><hr/></td></tr>' + ' <tr>' + ' <td style="font-weight:bold;font-size:10px;" >' + ' <a style="font-weight:bold;font-size:10px;" href="'+str_url+'">Проверить обновление скрипта.</a>' + ' <a style="font-weight:bold;font-size:10px;" href="'+str_url_aut+'">Сообщить автору о найденной ошибке.</a>' + ' </td>' + ' </tr>' + ' <tr>' + ' <td style="font-weight:bold;font-size:10px;" >' + ' Автор: <a style="font-weight:bold;font-size:10px;" href="http://www.heroeswm.ru/pl_info.php?id=30547">Pahan.</a>' + ' </td>' + ' </tr>' + ' </table>' + ' </center>' + '</div>'; $("#bt_close_inventory_nl").addEventListener( "click", close_setting_form , false ); bg.style.top = (-document.body.scrollTop)+'px'; bgc.style.top = ( document.body.scrollTop + 100 ) + 'px'; bg.style.display = bgc.style.display = 'block' ; } function InitNewLotForm() { if (document.forms.f.sign) { if (GM_getValue('one_click', 0) == 1) document.forms.f.submit(); } else { var LSelect = document.forms.f.item; addEvent(LSelect, 'change', LoadPrice); var LArt = decodeURIComponent(URLAttrValueGet('art', location.href)); var LArtFull = ''; if (LArt != '') { for(i = 0; i < LSelect.options.length; i++) { var LOption = LSelect.options[i]; if (LOption.text.indexOf(LArt) == 0) { LArtFull = LOption.text; LSelect.selectedIndex = LOption.index; } } } var LCountEl = document.forms.f.count; var LCount = 1; if (LArtFull != '') { var regex = /\((\d+)\)/; var regex_res = regex.exec(LArtFull); if (regex_res) LCount = Math.min(parseInt(regex_res[1]), 3); } LCountEl.value = LCount; var LPriceEl = document.forms.f.price; addEvent(LPriceEl, "change", PriceTrimNewLotForm); addEvent(LPriceEl, "keyup", PriceTrimNewLotForm); addEvent(LPriceEl, "paste", PriceTrimNewLotForm); LoadPrice(); LNewDiv = document.createElement('b'); LNewDiv.innerHTML = '<input type="button" style="width:80;" id="id_save_price" value="Сохранить">'; LPriceEl.parentNode.insertBefore(LNewDiv, LPriceEl.nextSibling); addEvent($('#id_save_price'), "click", SavePrice); LNewDiv = document.createElement('b'); LNewDiv.innerHTML = '<input type="button" style="width:25;height:25;font-size=10px;padding:0;margin:0;" id="id_decrement_price" value="-">' + '<input type="button" style="width:25;height:25;font-size=10px;padding:0;margin:0;" id="id_increment_price" value="+">'; LPriceEl.parentNode.insertBefore(LNewDiv, LPriceEl.nextSibling); addEvent($('#id_decrement_price'), "click", DecrementPrice); addEvent($('#id_increment_price'), "click", IncrementPrice); var LDurationEl = document.forms.f.duration; var LDuration = LNewLotDurationDef; var LDurationParam = URLAttrValueGet('d', location.href); if (LDurationParam == '30m') LDuration = 1; else if (LDurationParam == '1h') LDuration = 2; else if (LDurationParam == '3h') LDuration = 3; else if (LDurationParam == '6h') LDuration = 4; else if (LDurationParam == '12h') LDuration = 5; else if (LDurationParam == '1d') LDuration = 6; else if (LDurationParam == '2d') LDuration = 7; else if (LDurationParam == '3d') LDuration = 8; for(i = 0; i < LDurationEl.options.length; i++) { var LOption = LDurationEl.options[i]; if (LOption.value == LDuration) { LDurationEl.selectedIndex = LOption.index; } } var LSubmits = document.querySelectorAll('input[type="submit"]'); if (LSubmits && LSubmits.length > 0) { var LSubmit = LSubmits[0]; LNewDiv = document.createElement('b'); LNewDiv.innerHTML = '<input type="checkbox" id="id_one_click" title=""> Выставить лот в один клик'; LSubmit.parentNode.insertBefore(LNewDiv, LSubmit.nextSibling); var check_one_click = $('#id_one_click'); check_one_click.checked = GM_getValue('one_click', 0) == 1 ? 'checked' : ''; addEvent(check_one_click, "click", function(){setCheck('one_click');}); LDiv = document.createElement('div'); LDiv.innerHTML = '<div style="text-decoration:underline;cursor:pointer;font-weight:bold;font-size:10px;" id="hwm_hant_options">Настройки</div>'; LSubmit.parentNode.insertBefore(LDiv, LNewDiv.nextSibling); $("#hwm_hant_options").addEventListener( "click", open_setting_form , false ); } } } //---------------------------------------------------- function ProcessMain() { if (location.href.indexOf('/inventory.php') > -1) { AddNewLotHrefs(); if(!$("#click_div")) { var add_click_div = document.createElement('div'); add_click_div.id = "click_div"; add_click_div.style.display = "none"; document.querySelector("body").appendChild(add_click_div); } addEvent($("#click_div"), "click", SetTimer_ProcessMain); } else if (location.href.indexOf('/auction_new_lot.php') > -1) { InitNewLotForm(); } } ProcessMain();