NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name ArtifactFire Sell Price // @version 0.1 // @match https://www.artifactfire.com/artifact/cards/* // @match https://www.artifactfire.com/artifact/deck/* // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/lscache/1.3.0/lscache.min.js // @grant GM_xmlhttpRequest // @license MIT // ==/UserScript== (function () { 'use strict'; if (/\/artifact\/cards\/.*/.test(window.location.pathname)) { // card var name = $('.cards__details h1').text().replace(': Artifact Card', '').trim(); getPrice(name, function (price) { var template = '<div class="cards__details__stats"><h2>Steam Market Price</h2><div><h3>Sale starting at ' + price + '</h3><div style="clear:both;"></div></div></div>'; $('.cards__details').eq(0).append(template); }); } else if (/\/artifact\/deck\/.*/.test(window.location.pathname)) { // deck // hero $('.deck__header__main__heroes > a').each(function (i) { var name = $(this).find('.hero__stats__name').text().trim(); var self = this; getPrice(name, function (price) { var template = '<div class="hero__stats__color">' + price + '</div>'; $(self).find('.hero__stats').eq(0).append(template); }); }); // other cards $('.card-table__body > a').each(function (i) { var name = $(this).find('span > em').eq(0).text().trim(); var self = this; getPrice(name, function (price) { var template = price + ' | '; $(self).find('span > em').eq(0).prepend(template); }); }); } function getPrice(card_name, callback) { var cache = lscache.get('artifactfirecard_' + card_name); if (cache) { console.log('getPrice (cache) : ' + card_name); callback(cache); return; } GM_xmlhttpRequest({ method: "GET", url: 'https://steamcommunity.com/market/search?appid=583950&q=' + card_name, onload: function (response) { var result = $(response.responseText).find('#result_0'); if (result) { var price = result.find('.market_table_value > .normal_price').eq(0).text(); if (!price) { price = '-'; lscache.set('artifactfirecard_' + card_name, '-', rand(2, 5)); } else { lscache.set('artifactfirecard_' + card_name, price, 10 + rand(2, 5)); } console.log('getPrice (new) : ' + card_name + ' = ' + price); callback(price); } } }); } function rand(min, max) { return Math.floor(Math.random() * max) + min; } })();