SteamDB

» » » ItemPriceDisplayer for CS:GO Lounge [ENG/RUS]

ItemPriceDisplayer for CS:GO Lounge [ENG/RUS]

ENG - Script for TamperMonkey which shows prices for items
RUS - Скрипт для TamperMonkey,который показывает цены на предметы
Скачать TamperMonkey[tampermonkey.net]
Download TamperMonkey[tampermonkey.net]
-------------------------------------------------------------------------------------------
SCRIPT for ♥♥♥♥♥♥♥♥♥♥
// ==UserScript== // @name CS GO Lounge item price displayer // @namespace // @version 1.1 // @author Enygma // @description Displays an item's lowest price offer from the Steam community market and also provides a helper to copy an item's name by clicking the panel under it. Based on the "Steam Market Price Matcher" script by tomatolicious available at // @license GPL version 3 or any later version; // @include {LINK REMOVED}* // @updateURL // @downloadURL // @grant GM_xmlhttpRequest // @grant GM_addStyle // ==/UserScript== // initialize the script for the items on the page var initialize = function() { // find each item's name panel/slot var itemNamePanels = document.querySelectorAll(".item .name"); attachExtraPanelsAndListeners(itemNamePanels); // watch the right list of items for changes, when it exists var rightItemList = document.querySelector("#rightlist #itemlist"); if (rightItemList) { attachMutationObserver(rightItemList); } var offerPanel = document.querySelector("#messages #offer"); if (offerPanel) { attachMutationObserver(offerPanel); } } // add to each item's name panel an extra panel that contains the price information and a click handler to facilitate copying the item's name var attachExtraPanelsAndListeners = function(itemNamePanels) { for (var i = 0, length = itemNamePanels.length; i < length; i++) { var itemNamePanel = itemNamePanels;
// create our own panel to append..
var extraPanel = document.createElement('div');
extraPanel.innerHTML = "<span class='scriptStatus'>Ready</span>";
extraPanel.setAttribute("class", "extraPanel");
// ..and do so
itemNamePanel.appendChild(extraPanel);
// set mouseover event listener on the item
itemNamePanel.parentNode.addEventListener("mouseover", getLowestPriceHandler, false);
// set click event handler for the item's name panel so that the item name can be copied to the clipboard easier
itemNamePanel.addEventListener("click", copyItemNameHandler, false);
}
}

// attach a mutation observer on the target item container
var attachMutationObserver = function(target) {
// create an observer instance
var observer = new MutationObserver(function(mutations) {
// we`re intereste only in mutations that add nodes. This skips the mutation introduced by the "Add item to offer" button's removal
if (mutations.length == 1 && mutations[0].removedNodes.length > 0) {
return;
}
// when the mutation happens, augment the new items with price info and etc.
itemNamePanels = target.querySelectorAll(".item .name");
attachExtraPanelsAndListeners(itemNamePanels);
});

// configuration of the observer
var config = { childList: true };

// pass in the target node, as well as the observer options
observer.observe(target, config);
}

// event handler to grab the price
var getLowestPriceHandler = function() {
var itemNameElement = this.querySelector(".name");
// don`t try to get the price if we've already retrieved it
if (itemNameElement.querySelector(".scriptStatus").innerHTML != "Ready") {
return;
}
var theItem = itemNameElement.querySelector("b").innerHTML.trim();
var theItemString = encodeURIComponent(theItem);
// from Steam's community market website
var appID = 730;
itemNameElement.querySelector(".scriptStatus").innerHTML = "Loading...";
GM_xmlhttpRequest({
method: "GET",
url: "; + appID + "/" + theItemString + "/",
onload: function (response) {
var httpResponse = response.responseText;
var match = lowestPriceWithFeeRegExp.exec(httpResponse);
var priceWithFee = "<span class='" + (match ?
"itemMarketable'>" + match[1] :
"itemNotMarketable'>Not Marketable")
+ "</span>";
match = lowestPriceWithoutFeeRegExp.exec(httpResponse);
var priceWithoutFee = match ? match[1] + " - without fee (seller receives)" : "";
itemNameElement.querySelector(".scriptStatus").innerHTML = "<span title='" + priceWithoutFee + "'>" + priceWithFee + "</span>";
}
});
}

// cached RegExps used to read the item's value from the Steam page.
var lowestPriceWithFeeRegExp = /<span class="market_listing_price market_listing_price_with_fee">\s*(.*?)\s*<\/span>/i;
var lowestPriceWithoutFeeRegExp = /<span class="market_listing_price market_listing_price_without_fee">\s*(.*?)\s*<\/span>/i;

// event handler to facilitate copying an item's name
var copyItemNameHandler = function(event) {
// stop the element's parent (item) from getting the click event. This stops the item from being selected
event.stopPropagation()
// make sure we select the item name element
var itemNameElement = event.target;
while (!hasClass(itemNameElement, "name")) {
itemNameElement = itemNameElement.parentNode;
}
// get and display the item's name
var itemName = itemNameElement.querySelector("b").innerHTML.trim();
window.prompt("Press CTRL+C to copy the item's name:", itemName);
}

// helper method to check if an element has the specified class name
var hasClass = function(element, cls) {
return (" " + element.className + " ").indexOf(" " + cls + " ") > -1;
}

// style
GM_addStyle(".itemNotMarketable { color : red } .itemMarketable { color: green }");

// initialize the script once the page has finished loading
window.onload = initialize;[/code]
DuDu$ Key-Drop.com 14 декабря 2020 21:42
+rep
Kauman 24 января 2015 14:25
i don't know . Need tampermonkey for this
1qaz2wsx151 24 января 2015 14:22
is it chrome only?
✿тhuggä✿ 7 декабря 2014 16:30
Thanks doood
Kauman 7 декабря 2014 10:28
Thank you my friend :)
Enygma 7 декабря 2014 01:04
Hi! Version 3.0 is out, as an early Christmas present! A lot of new features are added, including the possibility to change the currency. Grab the latest version by going to one of the following locations: * OpenUserJS [openuserjs.org] * GreasyFork [greasyfork.org] * GitHub [github.com] Of course, your donations and appreciation are humbly welcomed.
Swaggaboa 15 октября 2014 03:47
How to change in USD??
Madi 18 сентября 2014 04:05
hi, i live in indonesia, and yesterday steam change currency to local currency (IDR), previous use USD. and the SCRIPT change to IDR too. what if change the currency to USD ?? like before
Knedla 8 июля 2014 22:24
Thx! :)
Enygma 9 мая 2014 21:34
What are you trying to say "nech bože dá"?