Advertisement
Guest User

Untitled

a guest
Jan 10th, 2018
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function recordDailyNetworth() {
  2.  
  3.   updateRates();
  4.  
  5.   recordDailyFiatNetWorth();
  6.   recordDailyCryptoNetWorth();
  7. }
  8.  
  9. function recordDailyFiatNetWorth() {
  10.   var netWorthSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Net Worth");
  11.   var nwOverTimeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Net Worth Over Time");
  12.  
  13.   var totalUsdValue = netWorthSheet.getRange("totalUsdValue").getValue();
  14.   var fiatUsdValue = netWorthSheet.getRange("fiatUsdValue").getValue();
  15.   var cryptoUsdValue = netWorthSheet.getRange("cryptoUsdValue").getValue();
  16.  
  17.   var percentCryptoBtc = netWorthSheet.getRange("percentCryptoBtc").getValue();
  18.   var percentCryptoAlt = netWorthSheet.getRange("percentCryptoAlt").getValue();
  19.  
  20.   var todaysRowNumber = nwOverTimeSheet.getRange("N1").getValue();
  21.  
  22.   nwOverTimeSheet.getRange(todaysRowNumber, 3).setValue(fiatUsdValue);
  23.   nwOverTimeSheet.getRange(todaysRowNumber, 4).setValue(cryptoUsdValue);
  24.   nwOverTimeSheet.getRange(todaysRowNumber, 5).setValue(totalUsdValue);
  25.  
  26.   nwOverTimeSheet.getRange(todaysRowNumber, 8).setValue(percentCryptoBtc);
  27.   nwOverTimeSheet.getRange(todaysRowNumber, 9).setValue(percentCryptoAlt);
  28. }
  29.  
  30. function recordDailyCryptoNetWorth() {
  31.  
  32.   var netWorthSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Net Worth");
  33.   var cnwOverTimeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Crypto Value Over Time");
  34.  
  35.   var todaysRowNumber = cnwOverTimeSheet.getRange("A2").getValue();
  36.  
  37.   cnwOverTimeSheet.getRange(todaysRowNumber, 3).setValue(netWorthSheet.getRange("btcCurrentValue").getValue());
  38.   cnwOverTimeSheet.getRange(todaysRowNumber, 4).setValue(netWorthSheet.getRange("kmdCurrentValue").getValue());
  39.   cnwOverTimeSheet.getRange(todaysRowNumber, 5).setValue(netWorthSheet.getRange("xmrCurrentValue").getValue());
  40.   cnwOverTimeSheet.getRange(todaysRowNumber, 6).setValue(netWorthSheet.getRange("bchCurrentValue").getValue());
  41.   cnwOverTimeSheet.getRange(todaysRowNumber, 7).setValue(netWorthSheet.getRange("vtcCurrentValue").getValue());
  42.   cnwOverTimeSheet.getRange(todaysRowNumber, 8).setValue(netWorthSheet.getRange("venCurrentValue").getValue());
  43.   cnwOverTimeSheet.getRange(todaysRowNumber, 9).setValue(netWorthSheet.getRange("pivxCurrentValue").getValue());
  44.   cnwOverTimeSheet.getRange(todaysRowNumber, 11).setValue(netWorthSheet.getRange("arkCurrentValue").getValue());
  45.   cnwOverTimeSheet.getRange(todaysRowNumber, 12).setValue(netWorthSheet.getRange("omgCurrentValue").getValue());
  46.   cnwOverTimeSheet.getRange(todaysRowNumber, 13).setValue(netWorthSheet.getRange("zecCurrentValue").getValue());
  47.   cnwOverTimeSheet.getRange(todaysRowNumber, 14).setValue(netWorthSheet.getRange("qspCurrentValue").getValue());
  48.   cnwOverTimeSheet.getRange(todaysRowNumber, 15).setValue(netWorthSheet.getRange("ethCurrentValue").getValue());
  49.   cnwOverTimeSheet.getRange(todaysRowNumber, 16).setValue(netWorthSheet.getRange("viaCurrentValue").getValue());
  50.   cnwOverTimeSheet.getRange(todaysRowNumber, 17).setValue(netWorthSheet.getRange("ubqCurrentValue").getValue());
  51.   cnwOverTimeSheet.getRange(todaysRowNumber, 18).setValue(netWorthSheet.getRange("lskCurrentValue").getValue());
  52.   cnwOverTimeSheet.getRange(todaysRowNumber, 19).setValue(netWorthSheet.getRange("expCurrentValue").getValue());
  53.   cnwOverTimeSheet.getRange(todaysRowNumber, 20).setValue(netWorthSheet.getRange("dashCurrentValue").getValue());
  54.   cnwOverTimeSheet.getRange(todaysRowNumber, 21).setValue(netWorthSheet.getRange("dogeCurrentValue").getValue());
  55.   cnwOverTimeSheet.getRange(todaysRowNumber, 22).setValue(netWorthSheet.getRange("hsrCurrentValue").getValue());
  56.   cnwOverTimeSheet.getRange(todaysRowNumber, 23).setValue(netWorthSheet.getRange("ltcCurrentValue").getValue());
  57.   cnwOverTimeSheet.getRange(todaysRowNumber, 24).setValue(netWorthSheet.getRange("qtumCurrentValue").getValue());
  58.   cnwOverTimeSheet.getRange(todaysRowNumber, 26).setValue(netWorthSheet.getRange("xlmCurrentValue").getValue());
  59.   cnwOverTimeSheet.getRange(todaysRowNumber, 27).setValue(netWorthSheet.getRange("stratCurrentValue").getValue());
  60. }
  61.  
  62.  
  63. function updateRates() {
  64.  
  65.   var netWorthSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Net Worth");
  66.  
  67.   var btcUsdRate = getRateForCurrencyId('bitcoin');  
  68.   var kmdUsdRate = getRateForCurrencyId('komodo');
  69.   var xmrUsdRate = getRateForCurrencyId('monero');
  70.   var bchUsdRate = getRateForCurrencyId('bitcoin-cash');
  71.   var vtcUsdRate = getRateForCurrencyId('vertcoin');
  72.   var venUsdRate = getRateForCurrencyId('vechain');  
  73.   var pvxUsdRate = getRateForCurrencyId('pivx');  
  74.   var arkUsdRate = getRateForCurrencyId('ark');
  75.   var omgUsdRate = getRateForCurrencyId('omisego');
  76.   var zecUsdRate = getRateForCurrencyId('zcash');
  77.   var qspUsdRate = getRateForCurrencyId('quantstamp');
  78.   var ethUsdRate = getRateForCurrencyId('ethereum');
  79.   var viaUsdRate = getRateForCurrencyId('viacoin');
  80.   var ubqUsdRate = getRateForCurrencyId('ubiq');
  81.   var lskUsdRate = getRateForCurrencyId('lisk');
  82.   var expUsdRate = getRateForCurrencyId('expanse');
  83.   var dashUsdRate = getRateForCurrencyId('dash');
  84.   var dogeUsdRate = getRateForCurrencyId('dogecoin');
  85.   var hsrUsdRate = getRateForCurrencyId('hshare');
  86.   var ltcUsdRate = getRateForCurrencyId('litecoin');
  87.   var qtumUsdRate = getRateForCurrencyId('qtum');
  88.   var xlmUsdRate = getRateForCurrencyId('stellar');
  89.   var stratUsdRate = getRateForCurrencyId('stratis');
  90.  
  91.  
  92.   netWorthSheet.getRange("btcUsdRate").setValue(btcUsdRate);
  93.   netWorthSheet.getRange("kmdUsdRate").setValue(kmdUsdRate);
  94.   netWorthSheet.getRange("xmrUsdRate").setValue(xmrUsdRate);
  95.   netWorthSheet.getRange("bchUsdRate").setValue(bchUsdRate);
  96.   netWorthSheet.getRange("vtcUsdRate").setValue(vtcUsdRate);
  97.   netWorthSheet.getRange("venUsdRate").setValue(venUsdRate);
  98.   netWorthSheet.getRange("pvxUsdRate").setValue(pvxUsdRate);
  99.   netWorthSheet.getRange("arkUsdRate").setValue(arkUsdRate);  
  100.   netWorthSheet.getRange("omgUsdRate").setValue(omgUsdRate);  
  101.   netWorthSheet.getRange("zecUsdRate").setValue(zecUsdRate);  
  102.   netWorthSheet.getRange("qspUsdRate").setValue(qspUsdRate);  
  103.   netWorthSheet.getRange("ethUsdRate").setValue(ethUsdRate);
  104.   netWorthSheet.getRange("viaUsdRate").setValue(viaUsdRate);
  105.   netWorthSheet.getRange("ubqUsdRate").setValue(ubqUsdRate);
  106.   netWorthSheet.getRange("lskUsdRate").setValue(lskUsdRate);
  107.   netWorthSheet.getRange("expUsdRate").setValue(expUsdRate);
  108.   netWorthSheet.getRange("dashUsdRate").setValue(dashUsdRate);
  109.   netWorthSheet.getRange("dogeUsdRate").setValue(dogeUsdRate);
  110.   netWorthSheet.getRange("hsrUsdRate").setValue(hsrUsdRate);
  111.   netWorthSheet.getRange("ltcUsdRate").setValue(ltcUsdRate);
  112.   netWorthSheet.getRange("qtumUsdRate").setValue(qtumUsdRate);
  113.   netWorthSheet.getRange("xlmUsdRate").setValue(xlmUsdRate);
  114.   netWorthSheet.getRange("stratUsdRate").setValue(stratUsdRate);
  115. }
  116.  
  117.  
  118. function getRateForCurrencyId(currencyId) {
  119.  
  120.   var url = 'https://api.coinmarketcap.com/v1/ticker/' + currencyId + '/';
  121.   var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
  122.   var json = response.getContentText();
  123.   var data = JSON.parse(json);
  124.  
  125.   return parseFloat(data[0]['price_usd']);
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement