NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Steammarket Wear Display CSGOZone // @namespace http://www.siffers.de/ // @version 0.2 // @description Displays wear values for CS:GO weapons in market // @match http://steamcommunity.com/market/listings/730/* // @grant GM_xmlhttpRequest // @copyright 2015, Hack3l // @run-at document-idle // ==/UserScript== var $ = unsafeWindow.jQuery; function waitForKeyElements ( selectorTxt, /* Required: The jQuery selector string that specifies the desired element(s). */ actionFunction, /* Required: The code to run when elements are found. It is passed a jNode to the matched element. */ bWaitOnce, /* Optional: If false, will continue to scan for new elements even after the first match is found. */ iframeSelector /* Optional: If set, identifies the iframe to search. */ ) { var targetNodes, btargetsFound; if (typeof iframeSelector == "undefined") targetNodes = $(selectorTxt); else targetNodes = $(iframeSelector).contents () .find (selectorTxt); if (targetNodes && targetNodes.length > 0) { btargetsFound = true; /*--- Found target node(s). Go through each and act if they are new. */ targetNodes.each ( function () { var jThis = $(this); var alreadyFound = jThis.data ('alreadyFound') || false; if (!alreadyFound) { //--- Call the payload function. var cancelFound = actionFunction (jThis); if (cancelFound) btargetsFound = false; else jThis.data ('alreadyFound', true); } } ); } else { btargetsFound = false; } //--- Get the timer-control variable for this selector. var controlObj = waitForKeyElements.controlObj || {}; var controlKey = selectorTxt.replace (/[^\w]/g, "_"); var timeControl = controlObj [controlKey]; //--- Now set or clear the timer as appropriate. if (btargetsFound && bWaitOnce && timeControl) { //--- The only condition where we need to clear the timer. clearInterval (timeControl); delete controlObj [controlKey]; } else { //--- Set a timer, if needed. if ( ! timeControl) { timeControl = setInterval ( function () { waitForKeyElements ( selectorTxt, actionFunction, bWaitOnce, iframeSelector ); }, 300 ); controlObj [controlKey] = timeControl; } } waitForKeyElements.controlObj = controlObj; } function addButtonsToPage(){ itemlist = document.getElementsByClassName("market_listing_row"); for(var i = 0;i<itemlist.length;i++){ (function(i){ var buybutton = itemlist[i].getElementsByClassName("market_actionmenu_button"); var button = document.createElement("button"); button.innerHTML = "Load Wear"; button.onclick = function(){getWear(buybutton);}; button.className = "swd-wearbutton"; console.log(itemlist[i].getElementsByClassName("swd-wearbutton")); if(itemlist[i].getElementsByClassName("swd-wearbutton").length < 1){ itemlist[i].appendChild(button); var resultp = document.createElement("p"); resultp.className = "swd-resultp"; itemlist[i].appendChild(resultp); } })(i); } } function getWear(buybutton){ unsafeWindow.$J(buybutton).click(); var tradelink = document.querySelectorAll(".popup_menu_item:not(.tight):not(.notification_ctn)")[4]; console.log(tradelink); unsafeWindow.HideMenuFast( buybutton, 'market_action_popup' ); GM_xmlhttpRequest({ method: "GET", url: "http://www.csgozone.net/_service/user?type=marketInspect&link="+encodeURIComponent(tradelink), onload: function(response) { var wear = JSON.parse(response.responseText).wear; console.log(buybutton); buybutton[0].parentElement.parentElement.getElementsByClassName("swd-resultp")[0].innerHTML= "Wear: "+wear; } }); } waitForKeyElements("div.market_listing_table_header",addButtonsToPage);