// // ==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.73 // @encoding utf-8 // @include http://*heroeswm.ru/inventory.php* // @include http://*heroeswm.ru/auction_new_lot.php* // @include http://*heroeswm.ru/transfer.php* // @include http://*lordswm.com/inventory.php* // @include http://*lordswm.com/auction_new_lot.php* // @include http://*lordswm.ru/transfer.php* // @include http://178.248.235.15/inventory.php* // @include http://178.248.235.15/auction_new_lot.php* // @include http://178.248.235.15/transfer.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 // @downloadURL https://update.greasyfork.icu/scripts/13223/hwm_inventory_new_lot.user.js // @updateURL https://update.greasyfork.icu/scripts/13223/hwm_inventory_new_lot.meta.js // ==/UserScript== // settings LNewLotDurationDef = '3'; // settings end var version = '1.73'; var idn = 'inventory_new_lot'; 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+'. Найдена ошибка:'; var str_url_sps = '/transfer.php?pahan_sps=' + encodeURIComponent('Подарок. Спасибо за скрипт: '+str_script_name+' v'+version+'.'); 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; ix' + '
' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '
'+str_script_name+' '+version+'

(Empty)

' + ' Обновить  ' + ' Нашли ошибку?  ' + ' Сказать спасибо  ' + ' Скинуть все настройки ' + '
' + ' Автор: Pahan.' + '
' + '
' + ''; addEvent($('#bt_close' + idn), 'click', close_setting_form); addEvent($('#settings_reset' + idn), 'click', clear_all_params); } bg.style.display = bgc.style.display = 'block' ; $('#dialog_content'+idn).innerHTML = ASettingsHTML; } function show_settings_base(ASettingsHTML) { show_dialog_base('
Настройки:
' + ASettingsHTML); } // ------------------ dialog function SpsProcess() { if (location.href.indexOf('/transfer.php') > -1) { var LSps = decodeURIComponent(URLAttrValueGet('pahan_sps', location.href)); if (LSps != '') { document.forms.f.nick.value = 'Pahan'; document.forms.f.gold.value = '500'; document.forms.f.desc.value = LSps; } } } SpsProcess(); // ----------------------------------------------- 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+)\/; 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 open_setting_form() { show_settings_base(' Выставлять лот в один клик'); 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');}); } 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 LArtTrim = DeleteCRLF(LArt); var LArtFull = ''; if (LArt != '') { for(i = 0; i < LSelect.options.length; i++) { var LOption = LSelect.options[i]; if ((LOption.text.indexOf(LArt) == 0) || (LOption.text.indexOf(LArtTrim) == 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 = ''; LPriceEl.parentNode.insertBefore(LNewDiv, LPriceEl.nextSibling); addEvent($('#id_save_price'), "click", SavePrice); LNewDiv = document.createElement('b'); LNewDiv.innerHTML = '' + ''; 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]; LDiv = document.createElement('div'); LDiv.innerHTML = '
Настройки
'; LSubmit.parentNode.insertBefore(LDiv, LSubmit.nextSibling); addEvent($('#hwm_options'+idn), 'click', open_setting_form); } } } //---------------------------------------------------- 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();