您需要先安装一个扩展,例如 篡改猴、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();