Advertisement
ChromeGuy

MultiPoolHub balances page enhancer

Jan 23rd, 2018
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name     MiningPoolHub balances page enhancer
  3. // @version  1
  4. // @grant    none
  5. // @include     https://miningpoolhub.com/?page=account&action=balances
  6. // ==/UserScript==
  7.  
  8. var load,execute,loadAndExecute;load=function(a,b,c){var d;d=document.createElement("script"),d.setAttribute("src",a),b!=null&&d.addEventListener("load",b),c!=null&&d.addEventListener("error",c),document.body.appendChild(d);return d},execute=function(a){var b,c;typeof a=="function"?b="("+a+")();":b=a,c=document.createElement("script"),c.textContent=b,document.body.appendChild(c);return c},loadAndExecute=function(a,b){return load(a,function(){return execute(b)})};
  9.  
  10. if (window.top != window.self){
  11.     //don't run on frames or iframes
  12.     Log('skipped loading inside iframe');
  13. }
  14.  
  15. loadAndExecute("//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", function() {
  16.     function Log(data,msg){     if(msg) console.log(data,"MPH-> "+msg);     else console.log("MPH->",data); }
  17.     function LogCB(data,msg){       if(msg) console.log(data,"CB-> "+msg);      else console.log("CB->",data);  }
  18.     function LogCMC(data,msg){      if(msg) console.log(data,"CMC-> "+msg);     else console.log("CMC->",data); }
  19.   $ = jQuery.noConflict();
  20.     Log("balances page enhancer: loaded");
  21.  
  22.   function getPrice(coin,callback){
  23.     if(!coin)coin = "bitcoin";
  24.     $.ajax({
  25.       url:"https://api.coinmarketcap.com/v1/ticker/"+coin+"/",
  26.       type:"GET",
  27.       dataType: "json",
  28.       success:function(data){
  29.         LogCMC(data);
  30.         if(typeof callback === "function") callback(data[0]);
  31.       },
  32.       error:function(data){
  33.         LogCMC(data.responseText,"error");
  34.       },
  35.     });
  36.   }
  37.  
  38.     var coins = {
  39.     "Adzcoin":                  "ADZ",
  40.     "Auroracoin":               "AUR",
  41.     "Bitcoin":                  "BTC",
  42.     "Bitcoin-Cash":         "BCH",
  43.     "Bitcoin-Gold":         "BTG",
  44.     "Dash":                         "DASH",
  45.     "Digibyte":                 "DGB",
  46.     "Electroneum":          "ETN",
  47.     "Ethereum":                 "ETH",
  48.     "Ethereum-Classic": "ETC",
  49.     "Expanse":                  "EXP",
  50.     "Feathercoin":          "FTC",
  51.     "Gamecredits":          "GAME",
  52.     "Geocoin":                  "GEO",
  53.     "Globalboosty":         "BSTY",
  54.     "Groestlcoin":          "GRS",
  55.     "Litecoin":                 "LTC",
  56.     "Maxcoin":                  "MAX",
  57.     "Monacoin":                 "MONA",
  58.     "Monero":                       "XMR",
  59.     "Musicoin":                 "MUSIC",
  60.     "Myriadcoin":           "XMY",
  61.     "Sexcoin":                  "SXC",
  62.     "Siacoin":                  "SC",
  63.     "Startcoin":                "START",
  64.     "Verge":                        "XVG",
  65.     "Vertcoin":                 "VTC",
  66.     "Zcash":                        "ZEC",
  67.     "Zclassic":                 "ZCL",
  68.     "Zcoin":                        "XZC",
  69.     "Zencash":                  "ZEN",
  70.     }
  71.   //headers
  72.   $(".tablesorter thead tr")
  73.     .prepend('<th class="header grey" align="left">Tag</th>')
  74.     .prepend('<th class="header grey" align="left">Price</th>')
  75.     .append('<th class="header grey" align="center">BTC</th>')
  76.     .append('<th class="header grey" align="center">USD</th>');
  77.   //extra columns
  78.   var totalbtc = 0;
  79.   var totalusd = 0;
  80.   $(".tablesorter tr td:first-child a").each(function(){//for each linked coin name in the balance list
  81.     var $this = $(this);
  82.     var coin2check = $this.text()+" ";
  83.  
  84.     Object.keys(coins).some(function(key) {
  85.       var thekey = new RegExp(key+" ");
  86.       if (coin2check.match(thekey) != null) {
  87.         //Log(coin2check+" found: "+coins[key]);
  88.         var $tr = $this.parents("tr");
  89.         $tr.prepend('<td>'+coins[key]+'</td>');//tags
  90.         var confirmedbalance = $tr.find("td:nth-child(3)").text().replace(/ \([^)]*\)/g,"")
  91.         var pair = key;
  92.         //Log("getting price for: "+pair);
  93.               getPrice(pair,function(data){ //geting price for each coin
  94.                 //Log("1 "+data.name+" = $"+data.price_usd+" or B"+data.price_btc);
  95.           var btcval = Number(confirmedbalance*data.price_btc).toFixed(8,10);
  96.           var usdval = Number(confirmedbalance*data.price_usd).toFixed(4,10);
  97.           totalbtc += Number(btcval);
  98.           totalusd += Number(usdval);
  99.             $tr.append('<td>'+btcval+'</td>');//BTC value
  100.           $tr.append('<td>$'+usdval+'</td>');//USD value
  101.                     $tr.prepend('<td>$'+Number(data.price_usd).toFixed(4,10)+'</td>');//price
  102.          
  103.           $(".tbtc").text(Number(totalbtc).toFixed(8,10));
  104.           $(".tusd").text('$'+Number(totalusd).toFixed(4,10));
  105.             });
  106.        
  107.       }
  108.  
  109.     });
  110.  
  111.   });
  112.  
  113.   var $tb = $(".tablesorter tbody");
  114.   var $tr = $('<tr></tr>');
  115.   var $btc = $('<td class="tbtc">'+totalbtc+'</td>');//BTC value
  116.   var $usd = $('<td class="tusd">$'+totalusd+'</td>');//USD value
  117.   $tr.append('<td></td><td></td><td></td><td></td><td></td><td></td><td><b>TOTALS:</b></td>',$btc,$usd);
  118.   $tb.append($tr);
  119.  
  120.   $tb.append('<style>'+
  121.              '.width_62_percent h3:after{content:"🐞 BugFree Enhanced 🐞";float:right;}'+
  122.              '.tablesorter td, .tablesorterpager td {padding: 5px 10px;}'+
  123.              '.grey {color:#fff;text-shadow:0px 0px 5px #000;}'+
  124.              '</style>');
  125. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement