您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Скрывает артефакты находящиеся на хранении и позволяет в один клик забрать нескрытые артефакты, доступные для возврата
// ==UserScript== // @name HWM_Rented_Arts // ==UserScript== // @name HWM_Rented_Arts // @namespace Zeleax // @description Скрывает артефакты находящиеся на хранении и позволяет в один клик забрать нескрытые артефакты, доступные для возврата // @include /https:\/\/(www.heroeswm.ru|qrator.heroeswm.ru|178.248.235.15|www.lordswm.com|my.lordswm.com)\/(arts_arenda.php|inventory.php)/ // @version 1.8 // @license MIT // @grant none // ==/UserScript== // скрывать всех указанных ниже игроков на странице артов сданных в аренду var HidePlayers = ['Mr_SkauT','Сержант530','Alexis19923','Samohin017','Cle99','Лесные ягоды','Sekir']; // GM functions if (typeof GM_getValue != '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];};} if(/arts_arenda/.test(window.location.href)) { var urlArr=[]; var cntVisible=0; var returnCnt=0, hiddenCnt=0; var el, _row; var list = getL( "//a[contains(@href, 'pl_info.php')]"); for (var i=list.snapshotLength-1 ; i >=0; i-- ) { _row=list.snapshotItem(i).parentNode.parentNode.parentNode; if(HidePlayers.indexOf(list.snapshotItem(i).textContent) > -1) { _row.style.display = 'none'; hiddenCnt++; } else { cntVisible++; el=getE(".//a[contains(@href, 'arts_arenda.php?art_return')]", _row); if (el) { returnCnt++; urlArr.push(el.href); } } } if(GM_getValue('HWM_Rented_Arts.hiddenCnt')!=hiddenCnt) { GM_setValue('HWM_Rented_Arts.hiddenCnt', hiddenCnt); console.log('Сохранили HWM_Rented_Arts.hiddenCnt='+hiddenCnt); } document.body.innerHTML = document.body.innerHTML.replace('Артефакты в аренде:', 'Артефакты в аренде: '+cntVisible+' (+'+hiddenCnt+' на хранении) <button type="button" name="getBackMyArts" style="display:none">Test</button> '); if(returnCnt>0) { el=document.getElementsByName('getBackMyArts')[0]; el.textContent ='Забрать арты: '+returnCnt; el.onclick =function() {doAction();} el.style.display="initial"; } } else if(/inventory/.test(window.location.href)) { var hiddenArtsCnt= GM_getValue('HWM_Rented_Arts.hiddenCnt'); if(!hiddenArtsCnt) hiddenArtsCnt=0; el=getE("//div[@class='inv_scroll_content_inside' and contains(text(),'Предметы в аренде')]"); if(el) { var res=/\((\d+)\)/.exec(el.innerText); el.innerText=el.innerText.replace(/\((\d+)\)/,'('+(parseInt(res[1],10)-hiddenArtsCnt)+')'); el.title='На хранении: '+hiddenArtsCnt+' шт.' } } function doAction() // Возврат артов { for (var i=0 ; el=urlArr[i]; i++ ) func_getDocumentFromUrl(el); // забираем арты !!! location.reload(); } // получает документ по заданному URL function func_getDocumentFromUrl(urlToLoad){console.log('Load data from url: '+urlToLoad); var req=new XMLHttpRequest(); req.open("GET", urlToLoad, false); req.overrideMimeType('text/xml; charset=windows-1251'); req.send(null); var parser = new DOMParser(); return parser.parseFromString(req.responseText, "text/html"); } // доступ по xpath function getE(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;} function getL(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);} // @namespace Zeleax // @description Скрывает артефакты находящиеся на хранении и позволяет в один клик забрать нескрытые артефакты, доступные для возврата // @include /https:\/\/(www.heroeswm.ru|qrator.heroeswm.ru|178.248.235.15|www.lordswm.com)\/(arts_arenda.php|inventory.php)/ // @version 1.7 // @grant none // ==/UserScript== // скрывать всех указанных ниже игроков на странице артов сданных в аренду var HidePlayers = ['Mr_SkauT','Сержант530']; // GM functions if (typeof GM_getValue != '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];};} if(/arts_arenda/.test(window.location.href)) { var urlArr=[]; var cntVisible=0; var returnCnt=0, hiddenCnt=0; var el, _row; var list = getL( "//a[contains(@href, 'pl_info.php')]"); for (var i=list.snapshotLength-1 ; i >=0; i-- ) { _row=list.snapshotItem(i).parentNode.parentNode.parentNode; if(HidePlayers.indexOf(list.snapshotItem(i).textContent) > -1) { _row.style.display = 'none'; hiddenCnt++; } else { cntVisible++; el=getE(".//a[contains(@href, 'arts_arenda.php?art_return')]", _row); if (el) { returnCnt++; urlArr.push(el.href); } } } if(GM_getValue('HWM_Rented_Arts.hiddenCnt')!=hiddenCnt) { GM_setValue('HWM_Rented_Arts.hiddenCnt', hiddenCnt); console.log('Сохранили HWM_Rented_Arts.hiddenCnt='+hiddenCnt); } document.body.innerHTML = document.body.innerHTML.replace('Артефакты в аренде:', 'Артефакты в аренде: '+cntVisible+' (+'+hiddenCnt+' на хранении) <button type="button" name="getBackMyArts" style="display:none">Test</button> '); if(returnCnt>0) { el=document.getElementsByName('getBackMyArts')[0]; el.textContent ='Забрать арты: '+returnCnt; el.onclick =function() {doAction();} el.style.display="initial"; } } else if(/inventory/.test(window.location.href)) { var hiddenArtsCnt= GM_getValue('HWM_Rented_Arts.hiddenCnt'); if(!hiddenArtsCnt) hiddenArtsCnt=0; el=getE("//div[@class='inv_scroll_content_inside' and contains(text(),'Предметы в аренде')]"); if(el) { var res=/\((\d+)\)/.exec(el.innerText); el.innerText=el.innerText.replace(/\((\d+)\)/,'('+(parseInt(res[1],10)-hiddenArtsCnt)+')'); el.title='На хранении: '+hiddenArtsCnt+' шт.' } } function doAction() // Возврат артов { for (var i=0 ; el=urlArr[i]; i++ ) func_getDocumentFromUrl(el); // забираем арты !!! location.reload(); } // получает документ по заданному URL function func_getDocumentFromUrl(urlToLoad){console.log('Load data from url: '+urlToLoad); var req=new XMLHttpRequest(); req.open("GET", urlToLoad, false); req.overrideMimeType('text/xml; charset=windows-1251'); req.send(null); var parser = new DOMParser(); return parser.parseFromString(req.responseText, "text/html"); } // доступ по xpath function getE(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;} function getL(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);}