Skip to content

Instantly share code, notes, and snippets.

@anticlergygang
Created October 8, 2018 02:53
Show Gist options
  • Select an option

  • Save anticlergygang/b7bfc0fdadc97aa7360bb73f95efafef to your computer and use it in GitHub Desktop.

Select an option

Save anticlergygang/b7bfc0fdadc97aa7360bb73f95efafef to your computer and use it in GitHub Desktop.
Literally some of the worst code I have every written, gonna condense this to like 200 lines soon.
const colors = require('colors')
const binanceAPI = options => {
return new Promise((resolve, reject) => {
try {
let requestObject = {
host: 'api.binance.com',
port: 443,
method: options.method
}
switch (`${options.method} ${options.endpoint}`) {
case 'GET /api/v1/ping':
{
requestObject.path = options.endpoint
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/time':
{
requestObject.path = options.endpoint
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/exchangeInfo':
{
requestObject.path = options.endpoint
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/depth':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/trades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/historicalTrades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/aggTrades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/klines':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/ticker/24hr':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/ticker/price':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/ticker/bookTicker':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/order':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'POST /api/v3/order':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/openOrders':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/allOrders':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/account':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/myTrades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'POST /api/v3/order/test':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'DELETE /api/v3/order':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
default:
{
console.log(`${options.method} ${options.endpoint}`)
}
}
} catch (error) {
reject(error)
}
})
}
let priceQty = {}
let lastPriceQty = {}
setInterval(() => {
binanceAPI({ method: 'GET', endpoint: '/api/v1/depth', parameters: { symbol: 'XRPBTC', limit: 20 } }).then(orderBook => {
binanceAPI({ method: 'GET', endpoint: '/api/v1/trades', parameters: { symbol: 'XRPBTC', limit: 500 } }).then(trades => {
let sortArr = []
lastPriceQty = priceQty
priceQty = {}
trades.forEach((trade, tradeIndex) => {
if (Object.keys(priceQty).indexOf(trade.price) !== -1) {
if (trade.isBuyerMaker) {
priceQty[trade.price] = +priceQty[trade.price] - +trade.qty
} else {
priceQty[trade.price] = +priceQty[trade.price] + +trade.qty
}
} else {
if (trade.isBuyerMaker) {
priceQty[trade.price] = +trade.qty * -1
} else {
priceQty[trade.price] = +trade.qty
}
}
})
orderBook.asks.splice(15)
orderBook.asks.reverse()
orderBook.asks.forEach((e, i) => {
if (priceQty[orderBook.asks[i][0]] === undefined) {
sortArr.push([orderBook.asks[i][0], 0, orderBook.asks[i][1]])
} else {
sortArr.push([orderBook.asks[i][0], priceQty[orderBook.asks[i][0]], orderBook.asks[i][1]])
}
})
orderBook.bids.splice(15)
orderBook.bids.forEach((e, i) => {
if (priceQty[orderBook.bids[i][0]] === undefined) {
sortArr.push([orderBook.bids[i][0], 0, orderBook.bids[i][1]])
} else {
sortArr.push([orderBook.bids[i][0], priceQty[orderBook.bids[i][0]], orderBook.bids[i][1]])
}
})
let bookprices = []
sortArr.forEach((e, i) => {
bookprices.push(e[0])
})
Object.keys(priceQty).forEach((key, keyIndex) => {
if (bookprices.indexOf(key) === -1) {
sortArr.push([key, priceQty[key], 0])
}
})
sortArr.sort((a, b) => {
return b[0] - a[0]
})
console.clear()
let longestLeft = 0
let longestRight = 0
sortArr.forEach((e, i) => {
if (parseInt(e[2]).toString().length > longestLeft) {
longestLeft = parseInt(e[2]).toString().length
}
if (parseInt(e[1]).toString().length > longestRight) {
longestRight = parseInt(e[1]).toString().replace('-','').length
}
})
sortArr.forEach((e, i) => {
let leftSpaces = ''
let rightSpaces = ' '
if (longestLeft - parseInt(e[2]).toString().length > 0) {
for (let i = 0; i < longestLeft - parseInt(e[2]).toString().length; i++) {
leftSpaces = leftSpaces + ' '
}
}
if (longestRight - parseInt(e[1]).toString().replace('-','').length > 0) {
for (let i = 0; i < longestRight - parseInt(e[1]).toString().replace('-','').length; i++) {
rightSpaces = rightSpaces + ' '
}
}
if (e[0] >= orderBook.asks[orderBook.asks.length - 1][0]) {
if (parseInt(e[2]) === 0) {
if (lastPriceQty[e[0]]) {
if (e[1] > 0) {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.green)
}
} else {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red)
}
}
} else {
if (e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.green)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red)
}
}
} else if (e[1] === 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]}`.red)
} else {
if (lastPriceQty[e[0]]) {
if (e[1] > 0) {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.green)
}
} else {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red)
}
}
} else {
if (e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.green)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.red + `${e[1]}`.replace('-', '').red)
}
}
}
} else if (e[0] <= orderBook.bids[0][0]) {
if (parseInt(e[2]) === 0) {
if (lastPriceQty[e[0]]) {
if (e[1] > 0) {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.green)
}
} else {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red)
}
}
} else {
if (e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.green)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red)
}
}
} else if (e[1] === 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]}`.green)
} else {
if (lastPriceQty[e[0]]) {
if (e[1] > 0) {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.green)
}
} else {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red)
}
}
} else {
if (e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.green)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} `.green + `${e[1]}`.replace('-', '').red)
}
}
}
} else {
if (parseInt(e[2]) === 0) {
if (lastPriceQty[e[0]]) {
if (e[1] > 0) {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.green)
}
} else {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red)
}
}
} else {
if (e[1] > 0) {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.green)
} else {
console.log(`${leftSpaces} ` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red)
}
}
} else if (e[1] === 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]}`)
} else {
if (lastPriceQty[e[0]]) {
if (e[1] > 0) {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.green + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.green)
}
} else {
if (lastPriceQty[e[0]] - e[1] < 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').green)
} else if (lastPriceQty[e[0]] - e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red + `${rightSpaces}${lastPriceQty[e[0]] - e[1]}`.replace('-','').red)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red)
}
}
} else {
if (e[1] > 0) {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.green)
} else {
console.log(`${leftSpaces}${parseInt(e[2])}` + ` ${e[0]} ` + `${e[1]}`.replace('-', '').red)
}
}
}
}
})
}).catch(err => {
console.log(err)
})
}).catch(err => {
console.log(err)
})
}, 3000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment