-
-
Save achiko/11318745 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var util = require('util'); | |
var request = require("request"); | |
var _ = require('underscore'); | |
var fs = require('fs'); | |
var async = require('async'); | |
var mathjs = require('mathjs'), math = mathjs(); | |
//-- Loacalbitcoins | |
var localbitcoinsOtions = { | |
url: "https://localbitcoins.com/bitcoincharts/usd/orderbook.json", | |
strictSSL: false, | |
method: 'GET', | |
headers: { | |
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" | |
} | |
} | |
exports.LoadLocalBitcoins = function(callback) { | |
request(localbitcoinsOtions, function(error, response, body) { | |
var exch = "localbitcoins"; | |
var _BidsArr = { ex: exch, data: [] } | |
var _AsksArr = { ex: exch, data: [] } | |
if(error){ | |
console.log('kraken Error: ', error); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
if(_.isUndefined(response)){ | |
return callback(null,_BidsArr, _AsksArr); | |
} | |
console.log('localbitcoins status code: ', response.statusCode); | |
try { | |
var jsonobj = JSON.parse(body); | |
//var bids = _(jsonobj.bids).sortBy(function(obj) { return obj[0] * -1 }) | |
//var bids = jsonobj.bids.slice(0, 10); | |
var asks = jsonobj.asks.slice(0, 10); | |
} | |
catch(e){ | |
console.log('kraken Json Exeption: ', e); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
// _.each(bids, function(item){ | |
// console.log(item); | |
// _BidsArr.data.push({ "ex" : exch, "amt" : parseFloat(item[0]), "bid" : item.price }); | |
// }); | |
_.each(asks, function(item){ | |
_AsksArr.data.push({ "ex" : exch, "amt" : parseFloat(item[0]), "ask" : parseFloat(item[1]) }); | |
}); | |
callback(null, _BidsArr, _AsksArr); | |
}); | |
} | |
//-- Bitfinex | |
var bitfinexOtions = { | |
url: "https://api.bitfinex.com/v1/book/btcusd", | |
strictSSL: false, | |
method: 'GET', | |
headers: { | |
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" | |
} | |
} | |
exports.LoadBitfinex = function(callback) { | |
request(bitfinexOtions, function(error, response, body) { | |
var exch = "Bitfinex"; | |
var _BidsArr = { ex: exch, data: [] } | |
var _AsksArr = { ex: exch, data: [] } | |
if(error){ | |
console.log('Bitfinex http Error: ', error); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
if(_.isUndefined(response)){ | |
return callback(null,_BidsArr, _AsksArr); | |
} | |
//console.log('bitfinex status code: ', response.statusCode); | |
try { | |
var jsonobj = JSON.parse(body); | |
var bids = jsonobj.bids.slice(0, 10); | |
var asks = jsonobj.asks.slice(0, 10); | |
} | |
catch(e){ | |
console.log('Bitfinex Json Exeption: ', e); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
_.each(bids, function(item){ | |
_BidsArr.data.push({ "ex" : exch, "amt" : parseFloat(item.amount), "bid" : parseFloat(item.price) }); | |
}); | |
_.each(asks, function(item){ | |
_AsksArr.data.push({ "ex" : exch, "amt" : parseFloat(item.amount), "ask" : parseFloat(item.price) }); | |
}); | |
callback(null, _BidsArr, _AsksArr); | |
}); | |
} | |
//-- Kraken | |
var krakentterOtions = { | |
url: "https://api.kraken.com/0/public/Depth?pair=XXBTZUSD", | |
strictSSL: false, | |
method: 'GET', | |
headers: { | |
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" | |
} | |
} | |
exports.LoadKraken = function(callback) { | |
request(krakentterOtions, function(error, response, body) { | |
var exch = "Kraken"; | |
var _BidsArr = { ex: exch, data: [] } | |
var _AsksArr = { ex: exch, data: [] } | |
if(error){ | |
console.log('kraken http Error: ', error); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
if(_.isUndefined(response)){ | |
return callback(null,_BidsArr, _AsksArr); | |
} | |
// console.log('kraken status code: ', response.statusCode); | |
try { | |
var jsonobj = JSON.parse(body); | |
var bids = jsonobj.result.XXBTZUSD.bids.slice(0, 10); | |
var asks = jsonobj.result.XXBTZUSD.asks.slice(0, 10); | |
} | |
catch(e){ | |
console.log('Kraken Json exeption: ', e); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
_.each(bids, function(item){ | |
_BidsArr.data.push({ "ex" : exch, "amt" : parseFloat(item[1]), "bid" : parseFloat(item[0]) }); | |
}); | |
_.each(asks, function(item){ | |
_AsksArr.data.push({ "ex" : exch, "amt" : parseFloat(item[1]), "ask" : parseFloat(item[0]) }); | |
}); | |
callback(null, _BidsArr, _AsksArr); | |
}); | |
} | |
//-- Coinsetter | |
var coinsetterOtions = { | |
url: "https://api.coinsetter.com/v1/marketdata/depth", | |
strictSSL: false, | |
method: 'GET', | |
headers: { | |
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" | |
} | |
} | |
exports.LoadCoinsetter = function(callback) { | |
request(coinsetterOtions, function(error, response, body) { | |
var exch = "coinsetter"; | |
var _BidsArr = { ex: "coinsetter", data: [] } | |
var _AsksArr = { ex: "coinsetter", data: [] } | |
if(error){ | |
console.log('Coinsetter http error: ', error); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
if(_.isUndefined(response)){ | |
return callback(null,_BidsArr, _AsksArr); | |
} | |
//console.log('coinsetter status code: ', response.statusCode); | |
try { | |
var jsonobj = JSON.parse(body); | |
//var bids = jsonobj.bids.slice(0, 10); | |
//var asks = jsonobj.asks.slice(0, 10); | |
} | |
catch(e){ | |
console.log('Coinsetter Json Exption: ', e); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
_.each(jsonobj.TopNBidAsks, function(item){ | |
_BidsArr.data.push({ "ex" : exch, "amt" : item.Bid.Size, "bid" : item.Bid.Price }); | |
_AsksArr.data.push({ "ex" : exch, "amt" : item.Ask.Size, "ask" : item.Ask.Price }); | |
}); | |
callback(null, _BidsArr, _AsksArr); | |
}); | |
} | |
//-- Bitstamp | |
var bitstampOptions = { | |
url: "https://www.bitstamp.net/api/order_book/", | |
strictSSL: false, | |
method: 'GET', | |
headers: { | |
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" | |
} | |
} | |
exports.LoadBitsampdata = function(callback) { | |
request(bitstampOptions, function(error, response, body) { | |
var exch = "bitstamp"; | |
var _BidsArr = { ex: "bitstamp", data: [] } | |
var _AsksArr = { ex: "bitstamp", data: [] } | |
if(error){ | |
console.log('Bistamp http Error: ', error); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
if(_.isUndefined(response)){ | |
return callback(null,_BidsArr, _AsksArr); | |
} | |
//console.log('Bistamp status code: ', response.statusCode); | |
try { | |
var jsonobj = JSON.parse(body); | |
var bids = jsonobj.bids.slice(0, 10); | |
var asks = jsonobj.asks.slice(0, 10); | |
} | |
catch(e){ | |
console.log('Bitstamp Json exeption: ', e); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
//-- Separate bids | |
_.each(bids, function(val, key){ | |
_BidsArr.data.push({ "ex" : exch, "amt" : parseFloat(val[1]), "bid" : parseFloat(val[0]) }); | |
}); | |
_.each(asks, function(val, key){ | |
_AsksArr.data.push({ "ex" : exch, "amt" : parseFloat(val[1]), "ask": parseFloat(val[0]) }); | |
}); | |
//-- Sort Data | |
//var sordetdata = _(orderbookdata).sortBy(function(obj) { return obj.diff * -1 }); | |
callback(null, _BidsArr, _AsksArr); | |
}); | |
} | |
//-- Btc-e | |
var btceOtions = { | |
url: "https://btc-e.com/api/2/btc_usd/depth", | |
strictSSL: false, | |
method: 'GET', | |
headers: { | |
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" | |
} | |
} | |
exports.LoadBtceData = function(callback){ | |
request(btceOtions, function(error, response, body) { | |
var exch = "btc-e"; | |
var _BidsArr = { ex: "btc-e", data: [] } | |
var _AsksArr = { ex: "btc-e", data: [] } | |
if(error){ | |
console.log('Btc-e http error: ', error); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
if(_.isUndefined(response)){ | |
return callback(null,_BidsArr, _AsksArr); | |
} | |
//console.log('Btce-E status code: ', response.statusCode); | |
try { | |
var jsonobj = JSON.parse(body); | |
var bids = jsonobj.bids.slice(0, 10); | |
var asks = jsonobj.asks.slice(0, 10); | |
}catch(e) { | |
console.log('btc-e http exeption: ', e); | |
return callback(null, _BidsArr, _AsksArr); | |
} | |
//-- Loop and gergare in one line | |
_.each(bids, function(val, key){ | |
_BidsArr.data.push({ "ex" : exch, "bid": val[0], "amt": val[1] }); | |
}); | |
_.each(asks, function(val, key){ | |
_AsksArr.data.push({ "ex" : exch, "ask" : val[0], "amt" : val[1] }); | |
}); | |
//-- Sort Data | |
//-- var sordetdata = _(orderbookdata).sortBy(function(obj) { return obj.diff * -1 }); | |
callback(null, _BidsArr, _AsksArr); | |
}); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment