1. peekwise19.05.2025 at 1:55 PMот
  2. wallapopmanager19.05.2025 at 1:33 PMот
Loading...

CS:GO Loung helper

Discussion in 'Counter-Strike' started by nurik040404, 30.03.2014.

Thread Status:
Not open for further replies.
  1. nurik040404

    nurik040404

    Статус:
    Оффлайн
    Joined:
    28.10.13
    Messages:
    33
    Репутация:
    12 +/-
    Скрипт, который показывает цену предмета на торговой площадке steam.
    Google Chrome (в Яндекс браузере не работает)
    1)Заходим в настройки > Расширения > Еще расширения >В поиске вбиваем 'Tampermonkey'> Устанавливаем
    2)В 'Tampermonkey' Нажимаем "Добавить новый скрипт"
    3)Откроется вот такая вот вкладка

    Opera
    1)Переходим по ссылке > +Добавить в Opera
    2)В 'Tampermonkey' Нажимаем "Добавить новый скрипт"
    3)Откроется вот такая вот вкладка

    4)Весь внутренний текст заменяем на

    // ==UserScript==// @name CS:GO lounge helper
    // @version 1
    // @author Furiooon
    // @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 http://userscripts.org/scripts/source/154071.user.js
    // @include http://csgolounge.com/*
    // @updateURL http://userscripts.org/scripts/source/182588.user.js
    // @downloadURL http://userscripts.org/scripts/source/182588.user.js
    // @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'>Убери мышку с предмета</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 != "Убери мышку с предмета") {
    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 = "Загрузка...";
    GM_xmlhttpRequest({
    method: "GET",
    url: "http://steamcommunity.com/market/listings/" + appID + "/" + theItemString + "/",
    onload: function (response) {
    var httpResponse = response.responseText;
    var match = lowestPriceWithFeeRegExp.exec(httpResponse);
    var priceWithFee = "<span class='" + (match ?
    "itemMarketable'>" + match[1] :
    "itemNotMarketable'>Нет в продаже :(")
    + "</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 { font-size: 110%; color : red } .itemMarketable { color: blue }");


    // initialize the script once the page has finished loading

    window.onload = initialize;


    и нажимаем сохранить.
    5)Заходим на csgolounge.com наводим на нужный нам предмет
    Пример
    В пик активности может грузить чуть дольше
     
  2. ВсеМыБратья

    ВсеМыБратья

    Статус:
    Оффлайн
    Joined:
    05.01.14
    Messages:
    324
    Репутация:
    45 +/-
    Было в способах и под хайдом.
     
Thread Status:
Not open for further replies.