Skip to content

Instantly share code, notes, and snippets.

@stw
Created June 7, 2017 15:00
Show Gist options
  • Save stw/d641da4048e4d3e8967d52ae170eae13 to your computer and use it in GitHub Desktop.
Save stw/d641da4048e4d3e8967d52ae170eae13 to your computer and use it in GitHub Desktop.
Bittrex w/ timer
function processResults(k, r) {
var c = [];
for (var i=0; i < Object.keys(r).length; i++) {
c.push([k[i], r[k[i]]]);
}
return c;
}
function search(nameKey, myArray){
for (var i=0; i < myArray.length; i++) {
if (myArray[i].MarketName === nameKey) {
return myArray[i];
}
}
}
function cacheBittrex(market) {
var response = UrlFetchApp.fetch("https://bittrex.com/api/v1.1/public/getmarketsummaries");
json = JSON.parse(response);
return json;
}
function pullBittrex(market) {
var json = cacheBittrex(market);
return search(market, json.result);
}
/**
* Pulls the bittrex field for the given market.
*
* @param {market, field} market.
* @return the field for the market.
* @customfunction
*/
function updateBittrexField(market, field) {
return pullBittrex(market)[field];
}
function updateBittrexFieldScript(market, field) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("1min");
sheet.getRange("A3").setValue(pullBittrex(market)[field]);
sheet.getRange("B3").setValue(Date.now());
}
function updateBittrexFieldEvery() {
var market = 'BTC-AEON';
var field = 'Last';
var t = 60000;
while (1==1) {
updateBittrexFieldScript(market, field);
Utilities.sleep(t);
}
}
function updateBittrex(market) {
var r = pullBittrex(market);
var k = Object.keys(r);
processResults(r, k);
}
function pullPoloniex(market) {
var response = UrlFetchApp.fetch("https://poloniex.com/public?command=returnTicker");
return JSON.parse(response)[market];
}
/**
* Pulls the poloniex field for the given market.
*
* @param {market, field} market.
* @return the field for the market.
* @customfunction
*/
function updatePoloniexField(market, field) {
return pullPoloniex(market)[field];
}
function updatePoloniex(market) {
var r = pullPoloniex(market)[name];
var k = Object.keys(r);
processResults(r, k);
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Update Bittrex', 'menuItem1')
.addToUi();
}
function menuItem1() {
updateBittrexFieldEvery();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment