NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Farming Cards !
// @namespace Farming Cards !
// @icon http://steamcommunity.com/favicon.ico
// @updateURL https://openuserjs.org/src/scripts/diegokfu/Farming_Cards_!.user.js
// @downloadURL https://openuserjs.org/src/scripts/diegokfu/Farming_Cards_!.user.js
// @include *://steamcommunity.com/market/search?category_753_Game[]=tag_app_*&category_753_cardborder[]=tag_cardborder_0&category_753_item_class[]=tag_item_class_2&appid=753*
// @include *://store.steampowered.com/app/*
// @include *://www.tremorgames.com/?action=showitem*
// @include *://www.tremorgames.com/index.php?action=showitem*
// @version 0.4
// @grant GM_xmlhttpRequest
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js
// @author Diego Ferreira
// ==/UserScript==
var g_rgWalletInfo = {"wallet_currency":7,"wallet_country":"BR","wallet_fee":1,"wallet_fee_minimum":1,"wallet_fee_percent":"0.05","wallet_publisher_fee_percent_default":"0.10","wallet_fee_base":0,"wallet_balance":4248,"wallet_delayed_balance":0,"wallet_max_balance":190000,"wallet_trade_max_balance":152000,"success":true,"rwgrsn":-2};
function CalculateAmountToSendForDesiredReceivedAmount( receivedAmount, publisherFee )
{
if ( !g_rgWalletInfo['wallet_fee'] )
{
return receivedAmount;
}
publisherFee = ( typeof publisherFee == 'undefined' ) ? 0 : publisherFee;
var nSteamFee = parseInt( Math.floor( Math.max( receivedAmount * parseFloat( g_rgWalletInfo['wallet_fee_percent'] ), g_rgWalletInfo['wallet_fee_minimum'] ) + parseInt( g_rgWalletInfo['wallet_fee_base'] ) ) );
var nPublisherFee = parseInt( Math.floor( publisherFee > 0 ? Math.max( receivedAmount * publisherFee, 1 ) : 0 ) );
var nAmountToSend = receivedAmount + nSteamFee + nPublisherFee;
return {
steam_fee: nSteamFee,
publisher_fee: nPublisherFee,
fees: nSteamFee + nPublisherFee,
amount: parseInt( nAmountToSend )
};
}
function CalculateFeeAmount( amount, publisherFee )
{
if ( !g_rgWalletInfo['wallet_fee'] )
return 0;
publisherFee = ( typeof publisherFee == 'undefined' ) ? 0 : publisherFee;
// Since CalculateFeeAmount has a Math.floor, we could be off a cent or two. Let's check:
var iterations = 0; // shouldn't be needed, but included to be sure nothing unforseen causes us to get stuck
var nEstimatedAmountOfWalletFundsReceivedByOtherParty = parseInt( ( amount - parseInt( g_rgWalletInfo['wallet_fee_base'] ) ) / ( parseFloat( g_rgWalletInfo['wallet_fee_percent'] ) + parseFloat( publisherFee ) + 1 ) );
var bEverUndershot = false;
var fees = CalculateAmountToSendForDesiredReceivedAmount( nEstimatedAmountOfWalletFundsReceivedByOtherParty, publisherFee );
while ( fees.amount != amount && iterations < 10 )
{
if ( fees.amount > amount )
{
if ( bEverUndershot )
{
fees = CalculateAmountToSendForDesiredReceivedAmount( nEstimatedAmountOfWalletFundsReceivedByOtherParty - 1, publisherFee );
fees.steam_fee += ( amount - fees.amount );
fees.fees += ( amount - fees.amount );
fees.amount = amount;
break;
}
else
{
nEstimatedAmountOfWalletFundsReceivedByOtherParty--;
}
}
else
{
bEverUndershot = true;
nEstimatedAmountOfWalletFundsReceivedByOtherParty++;
}
fees = CalculateAmountToSendForDesiredReceivedAmount( nEstimatedAmountOfWalletFundsReceivedByOtherParty, publisherFee );
iterations++;
}
// fees.amount should equal the passed in amount
return fees;
}
function formatReal(int){
var tmp = int+'';
tmp = tmp.replace(/([0-9]{2})$/g, ",$1");
if( tmp.length > 6 )
tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
return int < 100 ? tmp.indexOf(",") == -1 ? "0,"+tmp : "0"+tmp: tmp;
}
function Intfee(value){
var fee=CalculateFeeAmount(value, g_rgWalletInfo['wallet_publisher_fee_percent_default']).fees;
value=parseInt(value.toString().replace(",", "").replace(".", ""));
value-=parseInt(fee);
return value;
}
if(window.location.href.indexOf("tremorgames.com/index.php?action=showitem") > -1){
document.getElementById('pricecoins').innerHTML+=" - $"+formatReal(parseInt((document.getElementById('pricecoins').childNodes[0].innerHTML/900)*100));
}
if(window.location.href.indexOf("tremorgames.com/index.php?action=showitem") > -1 && document.getElementById("productlink").href.indexOf("/app/") > -1){
var appid=document.getElementById("productlink").href.split("app/")[1].split("/")[0];
GM_xmlhttpRequest({
method: "GET",
timeout: 10000,
url: "http://store.steampowered.com/api/appdetails?filters=price_overview&appids="+appid,
onload: function(r) {
var data=JSON.parse(r.responseText)[appid].data.price_overview;
var currency=data.currency;
var initial=data.initial;
var final=data.final;
var discount=data.discount_percent;
$('#view_item_left').children('img').after('<br><br>Preço Atual: R$'+formatReal(final)+((discount > 0) ? " ("+discount+"% Off)" : "")+'<br>')
for(x in document.getElementsByTagName("i")){
if(document.getElementsByTagName("i")[x].innerHTML.toLowerCase().indexOf("item worth") > -1){
document.getElementsByTagName("i")[x].innerHTML = 'Item Worth : '+formatReal(initial)+' '+currency;
}
}
}
});
link="http://steamcommunity.com/market/search?category_753_Game[]=tag_app_"+appid+"&category_753_cardborder[]=tag_cardborder_0&category_753_item_class[]=tag_item_class_2&appid=753&start=0&count=20¤cy=7";
GM_xmlhttpRequest({
method: 'GET',
url: "http://steamcommunity.com/market/search/render?category_753_Game[]=tag_app_"+appid+"&category_753_cardborder[]=tag_cardborder_0&category_753_item_class[]=tag_item_class_2&appid=753&start=0&count=50¤cy=7",
onload: function(r) {
var data=JSON.parse(r.responseText);
var reiceve=Math.ceil((data.total_count/2));
var xmlString = data.results_html
, parser = new DOMParser()
, doc = parser.parseFromString(xmlString, "text/html");
var media=0;
var total=data.total_count;
for (var i = 0; i < total; i++) {
var price=(doc.getElementsByClassName("market_table_value normal_price")[i].childNodes[3].innerHTML.replace("R$ ", ""));
media+=parseInt(price.replace(",", ""));
}
var average=parseInt(media/total);
if(reiceve > 0){
$('#item_name').after("<a href='"+link+"'>Dropa "+reiceve+" de "+total+" Cartas - Preço Medio: "+formatReal(average)+" - 'Desconto': "+formatReal(Intfee(average*(Math.ceil(total/2))).toString().replace(".",","))+"</a>");
}
}
});
}
if(document.location.href.indexOf("/app/") > -1){
appid=location.href.split("app/")[1].split("/")[0];
link="http://steamcommunity.com/market/search?category_753_Game[]=tag_app_"+appid+"&category_753_cardborder[]=tag_cardborder_0&category_753_item_class[]=tag_item_class_2&appid=753&start=0&count=20¤cy=7";
GM_xmlhttpRequest({
method: 'GET',
url: "http://steamcommunity.com/market/search/render/?category_753_Game[]=tag_app_"+appid+"&category_753_cardborder[]=tag_cardborder_0&category_753_item_class[]=tag_item_class_2&appid=753&start=0&count=20¤cy=7",
onload: function(r) {
var data=JSON.parse(r.responseText);
var reiceve=Math.ceil((data.total_count/2));
var xmlString = data.results_html
, parser = new DOMParser()
, doc = parser.parseFromString(xmlString, "text/html");
var media=0;
var total=data.total_count;
for (var i = 0; i < total; i++) {
var price=(doc.getElementsByClassName("market_table_value normal_price")[i].childNodes[3].innerHTML.replace("R$ ", ""));
media+=parseInt(price.replace(",", ""));
}
var average=parseInt(media/total);
if(reiceve > 0){
document.getElementsByClassName('apphub_AppName')[0].innerHTML=document.getElementsByClassName('apphub_AppName')[0].innerHTML+"<br><a href='"+link+"' style='text-align:center;'>"+reiceve+"-"+total+" Cartas - Preço Medio: "+formatReal(average)+" - 'Desconto': "+formatReal(Intfee(average*(Math.ceil(total/2))).toString().replace(".",","))+"</a>";
}
}
});
} else if(document.location.href.indexOf("/market/") > -1){
var media=parseInt('0');
var total=document.getElementsByClassName("market_table_value normal_price").length;
for (var i = 0; i < total; i++) {
var price=(document.getElementsByClassName("market_table_value normal_price")[i].childNodes[3].innerHTML.replace("R$ ", ""));
media+=parseInt(price.replace(",", ""));
}
var average=parseInt(media/total);
document.getElementsByClassName("market_sortable_column")[3].innerHTML = "<span class='market_listing_header_namespacer'></span>NOME - PREÇO MEDIO: "+formatReal(average)+" | DESCONTO: "+formatReal(average*(Math.ceil(total/2)))+" (TAXA: "+formatReal(Intfee(average*(Math.ceil(total/2))).toString().replace(".",","))+")<span class='market_sort_arrow' style='display:none;'></span>";
}