From 711d1fcd83a14342b67468961584d3a10e11ac26 Mon Sep 17 00:00:00 2001 From: joeuhren <46763106+joeuhren@users.noreply.github.com> Date: Fri, 25 Dec 2020 21:08:25 -0700 Subject: [PATCH] Add 16x16 base64 logo images to markets -Logos are displayed in market dropdown, market select box and at the top-left of each box on the markets page -Markets are now sorted by market name --- app.js | 23 ++++++++++++++++++----- lib/markets/altmarkets.js | 1 + lib/markets/bittrex.js | 1 + lib/markets/bleutrade.js | 1 + lib/markets/crex.js | 1 + lib/markets/fides.js | 1 + lib/markets/poloniex.js | 1 + lib/markets/stex.js | 1 + lib/markets/yobit.js | 1 + public/css/style.scss | 4 ++++ routes/index.js | 3 ++- views/layout.pug | 13 +++++++++---- views/market.pug | 32 ++++++++++++++++++++++++++------ 13 files changed, 67 insertions(+), 16 deletions(-) diff --git a/app.js b/app.js index fa07873..03bc8cc 100644 --- a/app.js +++ b/app.js @@ -379,20 +379,33 @@ for (var i=1; i<6; i++) { app.set('panel'+i.toString(), ((panelorder.length >= i) ? panelorder[i-1].name : '')); } -// Dynamically populate market names -var market_names = {}; +// Dynamically populate market data +var market_data = []; settings.markets.enabled.forEach(function (market) { // Check if market file exists if (db.fs.existsSync('./lib/markets/' + market + '.js')) { // Load market file var exMarket = require('./lib/markets/' + market); - // Save market_name from market file to settings - eval('market_names.' + market + ' = "' + exMarket.market_name + '";'); + // Save market_name and market_logo from market file to settings + eval('market_data.push({id: "' + market + '", name: "' + (exMarket.market_name == null ? '' : exMarket.market_name) + '", logo: "' + (exMarket.market_logo == null ? '' : exMarket.market_logo) + '"});'); } }); -app.set('market_names', market_names); +// Sort market data by name +market_data.sort(function(a, b) { + var name1 = a.name.toLowerCase(); + var name2 = b.name.toLowerCase(); + + if (name1 < name2) + return -1; + else if (name1 > name2) + return 1; + else + return 0; +}); + +app.set('market_data', market_data); // catch 404 and forward to error handler app.use(function(req, res, next) { diff --git a/lib/markets/altmarkets.js b/lib/markets/altmarkets.js index 2969627..fa2c045 100644 --- a/lib/markets/altmarkets.js +++ b/lib/markets/altmarkets.js @@ -138,6 +138,7 @@ function get_chartdata(coin, exchange, cb) { module.exports = { market_name: 'AltMarkets', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAd1QTFRFAAAAMCUILCIHUT4LnngRHxcFAQEBDAoFDQoDAQEANCgKl3MU7bMUzpsRYksNGRQINioLTTsNHxkJBwYEJx4HxJQS/L4S/8AR2aQUj20TKyEIOiwJimkRPS8PDgsFi2kO/8IS97oR1qERv5ARypgStooRKyEGV0IKpX0SOi0NCAcCGBIE058R4aoRb1QOHxgGGBMEYksMVEALDgsDtYkRfF4RJR0JLyQG3KYSg2QQgWIQEw4EAwIBBgUCjGoOtYkSQjMOBAMBOSwLtooTu44S06ASFxIEDQsGgGEO0Z4SVEEQCggDPC8OonsW8LUT87cSUT4KDwsDRjYOnHcQWkUQEg4DBwUCSzoOfmET+rwTSzkJHRcFfl8OaVAP0Z4Rvo8RWEQQTTsLtIgQ/sAR/8ER77QSwpIRtYgQ0p8SmHMRi2kP+bsSjGsRTjwNFhEDlnIQb1UOkW4P77QR0p4Rh2YPgmMP8LUSyZgRaFAQNioIuYwSoHkQclcOblQPcFUPeVwPs4cR97sS1aERb1UPUj8NAwMDNysNoXoR26US46sS6rAS9bgS6K4SqYAQV0IOCAYEIxwMTTsPcVYQgGEPdloQYksQV0MPPzALCggCEg4FJh4JMycKNyoLLSMJ////MmeD5AAAAAFiS0dEnp+yowsAAAAJcEhZcwAAAEgAAABIAEbJaz4AAADlSURBVBjTY2AAAkYmBlTAzMLKxs7BCedzcfPw8vELCAoJQ/giomLiEpJSDNIysnIgPpu8gqKSsoqqGoO6hqYWUEBbR1dPn8PA0IjB2MTUDChgbmFpZc3AYGPLwGBn7+DIwObk7OLqBjbM3cPTy5jB28fXzz8AxA8MClYKCWUIC4+IFNeJ4rCNjomNi0/gYGBIjE1KTklNS8/IzMrOyQW6Li+/oFCpqKi4pLSsvALsh8qq6prauvqGxqbmFkeQQGtbe0dnV3dPb0VfIMTt/RMmTpo8Zeq06TNgvrOZOWv2nLmhYO8CADSQNA1qvj20AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTA0LTE1VDE2OjA5OjAyKzAwOjAwluUC8AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wNC0xNVQxNjowOTowMiswMDowMOe4ukwAAABGdEVYdHNvZnR3YXJlAEltYWdlTWFnaWNrIDYuNy44LTkgMjAxNC0wNS0xMiBRMTYgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmfchu0AAAAAGHRFWHRUaHVtYjo6RG9jdW1lbnQ6OlBhZ2VzADGn/7svAAAAGHRFWHRUaHVtYjo6SW1hZ2U6OmhlaWdodAAxOTIPAHKFAAAAF3RFWHRUaHVtYjo6SW1hZ2U6OldpZHRoADE5MtOsIQgAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9wbmc/slZOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTU1NTM0NDU0MlGFR58AAAAPdEVYdFRodW1iOjpTaXplADBCQpSiPuwAAABWdEVYdFRodW1iOjpVUkkAZmlsZTovLy9tbnRsb2cvZmF2aWNvbnMvMjAxOS0wNC0xNS8zNjY2MzkwN2U3OWFjMzk0YWEzMTMyNjI2YzUyNjliMi5pY28ucG5naO7VqwAAAABJRU5ErkJggg==', get_data: function(settings, cb) { var error = null; get_chartdata(settings.coin, settings.exchange, function (err, chartdata){ diff --git a/lib/markets/bittrex.js b/lib/markets/bittrex.js index 330fc44..103545c 100644 --- a/lib/markets/bittrex.js +++ b/lib/markets/bittrex.js @@ -127,6 +127,7 @@ function get_chartdata(coin, exchange, cb) { module.exports = { market_name: 'Bittrex', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACjElEQVR4nHWTzWtdZRCHn3nf95x789GWlJs2mgRdiEhAEKQhFGmsIBSyFtG1BCy2oII7DUW3biwYyD8QKF0IIrqKxK+NC6GLi8WvhTEkN+GaxBPvPee874yL3GhMdRazmt8sZp5HADATRAyAd79/BhcWwa6gaRIA3CbOraNxhbef+OpkRv4OL33eJJ96H3GL4rPgUgmaBnkPoQEpxqRphWrjTW5d7WMmwgt3PDOXMnz1CaPnn6PYMaIptTrECRgcNQUcrYvCn9016nyB9re1AHCr/SFnL7zqi53KKs2vPn6GN+bG6NWGd4O4wF4/8dqn29Vh3sql6Czb0sx1Yak9Rxa+QVWdmNci8vyT55h9uMnaDwWh4UlqZE744NpFFlZ/ZWMvJsmDs6q+HHDckKwp1isYaXpWX3mUMhpFqTw9P05MSu4d7325y71OSfACphAaQqxvBJB5YglqbmzIM5I57rb3Gc0dX/9ySKqM159tcXl6GDVDBmclloDMB4QJNAIiXuDHbkUjOMaHPd/9fAjAxkGNF7CjRwMiaARhwnGqGl7IHEQ1EIHgaO9WtHdKMi+nxwkYW/gwCZUBIiJ0e4mbs2PMPdQkyz2/9xLBwVMTTQ5KBTHDZUKMWwFsndB4mbLSZPjWsOfj+wX3tkuamaCVMfvIEL3aeOuzbfZKBSdqoeGJ9XpAuU0sX8I5ikqZPhv46MUp+tEQgbpWHmvlvLO+y0+bfcK5AOKgLg3l9r9Akj861dhQyIczQY7vLVBGZa+vxGQoVnHmQs5BZ5mlmesPorzfMWyArchgixlOFMExOi4U3TXSMcqnZBJxi/gsHLHxj0wWGpDqSNIV4kmZ/k9nsyvYQGfxvyHyxX/p/BcTSUaGzEtUTgAAAABJRU5ErkJggg==', get_data: function(settings, cb) { var error = null; get_chartdata(settings.coin, settings.exchange, function (err, chartdata) { diff --git a/lib/markets/bleutrade.js b/lib/markets/bleutrade.js index 5fc1b95..9ba9338 100644 --- a/lib/markets/bleutrade.js +++ b/lib/markets/bleutrade.js @@ -123,6 +123,7 @@ function get_chartdata(coin, exchange, cb) { module.exports = { market_name: 'Bleutrade', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF8WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTEyLTI1VDIwOjQ5OjE3LTA3OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTEyLTI1VDIwOjQ5OjE3LTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0yNVQyMDo0OToxNy0wNzowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmMmFhNzBmOS0wM2E2LTM1NGYtOGZhZi1lMDYyY2UyNzhjNzMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDoxNGY2YjlkNi0yYWFhLWRjNDItODQzNS04ZDRhY2Q4OTg2MTEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1YWJmZTUzNi04NmUxLWU0NGMtOWYzYy05NzAxZTZkNjhlNTYiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjVhYmZlNTM2LTg2ZTEtZTQ0Yy05ZjNjLTk3MDFlNmQ2OGU1NiIgc3RFdnQ6d2hlbj0iMjAyMC0xMi0yNVQyMDo0OToxNy0wNzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmMmFhNzBmOS0wM2E2LTM1NGYtOGZhZi1lMDYyY2UyNzhjNzMiIHN0RXZ0OndoZW49IjIwMjAtMTItMjVUMjA6NDk6MTctMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4YuftVAAADR0lEQVQ4EU3B3WvVdRwH8Pf36fd0ns/ObE43k2liUYLOKHvaqEldGETDi6iIqIvsIu8DhS4y+gOWdRtCFFq07oxYD2BgWEN2laYeth23nXN+7vx++z1/v5+IUHy9mPXxFdxPSw5r1YezfucVO9cH7CSHyPLFtFX9Nq15qF3voHAs3CWZIdxDBCZFJXesr5nnvEh5ATCGapxC9YN5I/hrWskQ95F52cE9jIEV5nujzZRWwqgkn1OF5kaKE+V+cMz2w3l/pDENAhgR/iNJStxFSrzMomzKHkR+zQ+eI8u6yg1hq+J+AWN+rvrBlBsmM1qIi0xrAAySCP8zBHA8Q0pAEn2llboKDqgkhYyxyA19Q4y/01zuTrNCXyzKDkCAFMaAPAtkCATehuBIRodMWHEwdGsdWO6CCw6ZFVomGbJ6abV7YDc2JvdAdHxwBgJjDNT0mmoQTkAb6LHWWxhvHeYAmDYI66XHo5r3ZiYFbj718P72G1PNeKSJcMcQOBhgHHUc3XCp8cffH7grXZDnlOBZv8YV92xYL3+22awsDBplNxhpoHXlnxPW5WtL4JgVQQLBZ96bNp77A29vlKvtjUu1Tu/CYLQZkq0eynYNT0ZKTlJvS5WS7EduaL7e8cntDfb3n9x3nAfxAjeOfQqDGJVO/xwnOsK1OVlb7s44f934HJzD7B1FKUrmvEE0w/LiZFT3jtgrvXO83YXe2TzNcPY6gXOMXFraYfXD1aRVBUoW0sI0AtfpmUfGaeynxZrV6YfR9gaYNjC5Gdt4/rG2ntiWS2hTgDO5fnCPNBUXUBxj3/0OJ8l5US+DxQlYmtlpqxp2XjoEZBosSjkNVYA4I85BCxAcplk6jaYHlBxkyoI3iM54hWZWN+DBA40zK0cPghMAR4Iq9il4Ckj1b5LFyUdipf8Cba+9zaJkr9qMf7GT9HC1HxwVxuD2+DbwIHqX4uxBqpcug/SzEOxpFAbcDz9k1id/At3gdXn7zpxjdKXaHcDNC4hCR4aL83HZAbSeLSzL7R2aQLxrGFR1A9Hx35frm18y69NFYCuBc62z09Zmthwmw1aU9Aslzxspbqq0QFKydttR+qoYxI21J/at+dOPXpA31pZFEONfwAie3PFmXOIAAAAASUVORK5CYII=', get_data: function(settings, cb) { var error = null; get_chartdata(settings.coin, settings.exchange, function (err, chartdata){ diff --git a/lib/markets/crex.js b/lib/markets/crex.js index 513abb5..c604486 100644 --- a/lib/markets/crex.js +++ b/lib/markets/crex.js @@ -115,6 +115,7 @@ function get_chartdata(coin, exchange, cb) { module.exports = { market_name: 'Crex24', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFyGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTEyLTI1VDE5OjE5OjU5LTA3OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTEyLTI1VDE5OjE5OjU5LTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0yNVQxOToxOTo1OS0wNzowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpkYTI0ZGM1Ny04NjA2LTY1NDctYjYyYi05YWZjZWM3Y2NjNTkiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjNzhhNDlhMy0xMTRiLWQ1NGUtOWMxZC0xNjQzNTBjNTYzYmUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjYzVhYTU1Yy0wYmJkLTQ5NDktOTM1OS03M2U3MGQ5OGYzZDciIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjYzVhYTU1Yy0wYmJkLTQ5NDktOTM1OS03M2U3MGQ5OGYzZDciIHN0RXZ0OndoZW49IjIwMjAtMTItMjVUMTk6MTk6NTktMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGEyNGRjNTctODYwNi02NTQ3LWI2MmItOWFmY2VjN2NjYzU5IiBzdEV2dDp3aGVuPSIyMDIwLTEyLTI1VDE5OjE5OjU5LTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+IfYWJwAAASNJREFUOI2d0j9LQlEYx/GLBLZELjkUNYiDSJOTEI1Z0Njg0NLUW1AQxSUaRBtsqsFojAh6A7U0RLWUkYuIGOHWUkH0h/w+cMTD05GuXfjAvfd5np/ec47nqWv68CCMWWQwrutDL5rHEMEajiXI0RNFAgFXwAYKSOPWUd/Gj3GOCd1QRwlbuFG1FL6tAHHSL84Z8rKKO7RUwDryuFIhS1JcxSYaeMSLKc44PmNRBdTk5TKayKpiWQ0HsK96Wp7ZsjYucGkVv7BiBVTUsHiXQg4L6OJDNcjzHoroOAJe7e15cjT85V4Cpv45PFgnbubNQo4yLGsU6wfI/p/iGs8+A6r2FoXMAfL762cI6kMyiSMff3v317AKSqImhwSfeMMDdhDX/T08PJuH3XSmHgAAAABJRU5ErkJggg==', get_data: function(settings, cb) { var error = null; get_chartdata(settings.coin, settings.exchange, function (err, chartdata) { diff --git a/lib/markets/fides.js b/lib/markets/fides.js index b53009d..fa6b009 100644 --- a/lib/markets/fides.js +++ b/lib/markets/fides.js @@ -119,6 +119,7 @@ function get_chartdata(coin, exchange, cb) { module.exports = { market_name: 'Fides-Ex', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACy0lEQVR4nIVTW0hUURTd55z7mjvTzGTOTBaWIUYlEkTQi6ConwiJHkN9BFEJvYgCiSCCO/fbj94UaGQPChyKqJ+IpFAo0SLI/EhSiaSycvTOzB3nnnvn7D6cSktr/Zy9D2evzTp7bYC/Qf6Ii7lBp3g7NRCR7I2fi0y4IZPPqbsBAEDD7hv+wS/W6SwXi7iK9wtB/GrlRKXjslTrk+O3d8TjLJlMCgDASQQISJr3NKufh8ZOjnyFxGiBD4t50krQnBI7z9ZxmeL3786ztrYTXRMbUgAAwzAoAYJE9qoDjAV9jsCAYMGwzZSryfrOchK4THlBDYeldes3nNlXW9sY+ymJGmBQ0zRF06qL85UcXSMB9ASAQBAUGdLOQQCAhgd1GVXGqzqwUU3GtbY9stowDAqQIBSMca5I1LfRH1a+yGnPDhOZyG4efZxuP7u/MXZo7aXNM1NSiNtSazQITYyR4V8SEsXAV6qO0Iyo8ZWrHRzs5yFKiSqw7FuX81bleIFEkd5rPdzvyaxbVxiapikMA0BKFD+wLXcrgjI+13udCnXWjOa0w4lI40oNlFKGTij9jrQeWHH+TaYX2hVdkbdvujBmmkdfSgkTgADBF84Nx19dSp221E1thJXblOc1naZIyL3p5miNq4oPxC91KooXG8qIe7TgfixOIYEISKiFD72+zOxA1Pda5R7E0Kf5BdUjZfq5U6+ObCxboNyZGyJKySyFz1EwlnxcnxqfXlECAYId6y8vhcUlS0Y/ZjPsU4ENB7w+K8v63YC7UC7VlmWxEMtxF8csfl1ut4ZMMH9bsyXewnqW9OCW7qpdXpWu5XQx4Pbn1DFeqMn7pTwviIHUYKbK0sR9z8Vh89GxNACQCU4EQgDw/da7UcvNVtogdEHI8nyE+nMW/7Ttbt2V6bdnGrTEW9jTndcqAADQQPpT7j+LEJCgYdBxp/0fPwAESUXUPMPJVQAAAABJRU5ErkJggg==', get_data: function(settings, cb) { var error = null; get_chartdata(settings.coin, settings.exchange, function (err, chartdata) { diff --git a/lib/markets/poloniex.js b/lib/markets/poloniex.js index 3e4a80e..d1d2440 100644 --- a/lib/markets/poloniex.js +++ b/lib/markets/poloniex.js @@ -116,6 +116,7 @@ function get_chartdata(coin, exchange, cb) { module.exports = { market_name: 'Poloniex', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF8WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTEyLTI1VDIwOjU1OjMzLTA3OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTEyLTI1VDIwOjU1OjMzLTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0yNVQyMDo1NTozMy0wNzowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphMzU0YTQ5My02M2VlLTQ3NDUtOTAyMC1jZjQ5ZTZlODRlNDQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZTZlOTkxZi05YTM4LTgxNDAtYTlmMS0yMGU3MThjOTU5YjMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplNzcwYmQ5Zi1kMzM2LTliNGQtYmVhMC0wOTIwNjZkNDIwZDIiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmU3NzBiZDlmLWQzMzYtOWI0ZC1iZWEwLTA5MjA2NmQ0MjBkMiIgc3RFdnQ6d2hlbj0iMjAyMC0xMi0yNVQyMDo1NTozMy0wNzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphMzU0YTQ5My02M2VlLTQ3NDUtOTAyMC1jZjQ5ZTZlODRlNDQiIHN0RXZ0OndoZW49IjIwMjAtMTItMjVUMjA6NTU6MzMtMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4yAdy4AAACnUlEQVQ4y11TS09TQRid9raFloIY45/wHUNijEsXBjeKC40r3Wrig7b0AS229AVIotISATdiSohuVJDYEkXjxsSFCQlEDSASdvIwo4BiheOZK1x6bTLp3PnOOd/3nZlPOJKpOVs8IUWDXwqPT4p6rxTBkHSn0tKWSEqNq5J7EQgy5iGGcV+DVBw7ucIajRX33exAW6GA8PM8EoURnM/1QzQ2wZVMoZJLhBpxNpdDYmQE4Xwe7fw/QI6NXLGLGXY0hTH2eQalvzM9PbAEgrAFQ6jr7jbFxme+oCocgeIKF8uzU2B/uhW/VlYM0PzCAjR/AO5IM1alNM5//1zFoXQbLKzQmUxJobEXVSr7w6X+flOm7KvX2Hndg8WlJePs8sAAsV5UkWNV3pWxDJoFZ0tcD7wZHzeJnLvTiaPxhL4fm5qElYlcxNJAKK5wbApUsAUX+zrIwOL3H4bAV5Zf4fHB+/ARau9264a6iVUcx5YAFwSzVDMgvD5cuN9nquLdh48QV67CwgS2VHqLbBawlAhc7HtgEng7MQGNAlokAjsF7PH/BOz8cLe2wklnD7e149vyskH+ND+Psmv1SAwOoa73HkQgpLegbQnoJipDoi3QmH1scsqU/TiFT9y6re8nZ2dRRkx5LLZtInuXbnWNvC7/00ETOfD4CXaTgLU148w/NKRfeTVbsahrZDnSzgdzKtMFrK8bwPdT0xStRzkf2cRMySvd2MDpbBds5FSoGXFFY3IPK0BJ33/4ImtS9ISuq1WTTqO4srotQuxechRXWCPNxWOZLDpGRxEaHkacg3Kyp5dzEEI5y3TSMAvnoZZnsXwBgWfDaH/xEkc6M9CabxQFQXMi1vJvTL2b49zYJFV52uY466XyTB9nhVFYZlfcv+GHou2DaH9cAAAAAElFTkSuQmCC', get_data: function(settings, cb) { var error = null; get_chartdata(settings.coin.toUpperCase(), settings.exchange.toUpperCase(), function (err, chartdata) { diff --git a/lib/markets/stex.js b/lib/markets/stex.js index 6d7f985..66963fa 100644 --- a/lib/markets/stex.js +++ b/lib/markets/stex.js @@ -140,6 +140,7 @@ function get_pair_id(coin, exchange, cb) { module.exports = { market_name: 'Stex', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFyGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTEyLTI1VDE5OjQwOjAyLTA3OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTEyLTI1VDE5OjQwOjAyLTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0yNVQxOTo0MDowMi0wNzowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmNDY0MzUwOS1lMDg4LTZlNDUtYTRjNS1hNDQyMmFlOTJhMjEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDoyNTQzNzIxNy05NDM4LTc2NDYtYThjZS05OWMxMjAwMGViMDQiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxYWY2Y2I0Zi05ZTJlLTJlNGYtOGEzMC0yYTE2OTQ3Njc5YmYiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxYWY2Y2I0Zi05ZTJlLTJlNGYtOGEzMC0yYTE2OTQ3Njc5YmYiIHN0RXZ0OndoZW49IjIwMjAtMTItMjVUMTk6NDA6MDItMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjQ2NDM1MDktZTA4OC02ZTQ1LWE0YzUtYTQ0MjJhZTkyYTIxIiBzdEV2dDp3aGVuPSIyMDIwLTEyLTI1VDE5OjQwOjAyLTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1hd2ZgAAAIlJREFUKBVjYBgFRIBv377tAANpaekVK1Z8+PDhxIkTBgYGGzZsOHPmzIEDB4BsPz+/S5cuzZ49e8aMGQzPnz8Hyn38+JGPjw+oH6hCQUEByAAKbtq0acGCBSIiIkDu+vXr3717x83NzbALDH79+iUgIICmAW5DSEjIlStXZs2aNW/evNE4oQkAAC8ZS4smAdEcAAAAAElFTkSuQmCC', get_data: function(settings, cb) { var error = null; get_pair_id(settings.coin.toUpperCase(), settings.exchange.toUpperCase(), function (err, stex_id) { diff --git a/lib/markets/yobit.js b/lib/markets/yobit.js index d54549b..9057b41 100644 --- a/lib/markets/yobit.js +++ b/lib/markets/yobit.js @@ -95,6 +95,7 @@ function get_orders(coin, exchange, cb) { module.exports = { market_name: 'Yobit', + market_logo: 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAEsUExURQCZ2ACV1gCY2ACO1ACR1QCT1gCP1AKa2AGZ2AOa2QCX1wOa2AGa2ACS1QCU1gCV1wSb2QCY1wGV16Pc8tLu+Q6c2QCa2ASa2Ruk3DKt4AKZ2Aud2nrL61y/5gGS1QOb2WLB6Cyr3wOW1wSZ2GrE6XrK6zKu4EC04lG65eH1+1C75bjk9Syq3s7t+HjK64DN7ACQ1eT2/AOY2Lnk9Fq+55PV70y45Kne8hCd2sXq98vs+IXN7IrQ7YvR7gOR1ZnX8ASa2FG35Aec2WDB5wmd2tXw+QCM0zuu4Aab2QOO1AKS1ZXW70a24wGX153Z8ard8giY2Aub2QWb2bvm9cTp9mbC6GXC6MPo9h6j3Cap3iKo3iGo3s3s+Cus34nR7d3z+n3M7ACQ1Nry+tjy+pKA2eoAAADASURBVBjTY2AgDLjZgQQnkObkFuAAMsX4+HkYGHiZ2Fl5WVmYgAL8MuqsnIJxUSxmwuZ6yoI8DKwahqLMCcGeoa6O7sLaSlIM8sx+3hHxogFJkcyMbFZavAwcRoEhyT7MsTEcnE52tjZsDAwCBmHhib7RIkwOLmym+kABTjkTf68gIUtnNzYLTTU+oACLgjGLh5COiL21rior0FEcXBKSXBw8jNKyKoogPhBwMQIJdiYWFkYIn4EDTHNwirMzEAMA6McVLdcDhkkAAAAASUVORK5CYII=', get_data: function(settings, cb) { var error = null; get_orders(settings.coin.toLowerCase(), settings.exchange.toLowerCase(), function(err, buys, sells) { diff --git a/public/css/style.scss b/public/css/style.scss index d20531f..075c7b3 100644 --- a/public/css/style.scss +++ b/public/css/style.scss @@ -671,4 +671,8 @@ tr { .fa-spinner { font-size: 18px; margin-bottom: 6px; +} + +.market-logo { + margin-right: 7px; } \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index d037edb..9abc5d1 100644 --- a/routes/index.js +++ b/routes/index.js @@ -194,7 +194,8 @@ router.get('/markets/:market', function(req, res) { res.render('./market', { active: 'markets', marketdata: { - market_name: exMarket.market_name, + market_name: (exMarket.market_name == null ? '' : exMarket.market_name), + market_logo: (exMarket.market_logo == null ? '' : exMarket.market_logo), coin: settings.markets.coin, exchange: settings.markets.exchange, data: data, diff --git a/views/layout.pug b/views/layout.pug index 2de54aa..316c5ef 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -321,15 +321,20 @@ html(lang='en') span.fab.fa-btc span.margin-left-5 #{settings.locale.menu_richlist} if settings.display.markets == true - if settings.markets.market_dropdown_menu == true && Object.keys(settings.market_names).length > 1 + if settings.markets.market_dropdown_menu == true && settings.market_data.length > 1 li#markets.dropdown a.nav-link.dropdown-toggle(data-toggle='dropdown', href='#' role='button' aria-haspopup='true' aria-expanded='false') span.fas.fa-chart-line span.margin-left-5 #{settings.locale.menu_markets} div.dropdown-menu - each mkt in settings.markets.enabled - if settings.market_names[mkt] != null - a.dropdown-item.loading(href='/markets/' + mkt) #{settings.market_names[mkt]} + each mkt in settings.market_data + if mkt != null && mkt.id != null + a.dropdown-item.loading(href='/markets/' + mkt.id) + if mkt.logo != null && mkt.logo != '' + img.market-logo(src='data:image/png;base64,' + mkt.logo, title=mkt.name, alt=mkt.name) + else + i.market-logo.fas.fa-question-circle + span #{mkt.name} else li#markets a.nav-link.loading(href='/markets/' + settings.markets.default) diff --git a/views/market.pug b/views/market.pug index b53790d..1c18297 100644 --- a/views/market.pug +++ b/views/market.pug @@ -49,7 +49,7 @@ block content }); }); .col-xs-12.col-md-12 - if settings.markets.market_select_visible == true && settings.markets.enabled.length > 1 + if settings.markets.market_select_visible == true && settings.market_data.length > 1 .row .col-md-12.cardSpacer .card.card-default.border-0 @@ -57,14 +57,24 @@ block content strong #{settings.locale.mkt_select} .card-body ul.nav.nav-pills - each mkt in settings.markets.enabled - if settings.market_names[mkt] != null - if market == mkt + each mkt in settings.market_data + if mkt != null && mkt.id != null + if market == mkt.id li.nav-item - a.nav-link.active(href='/markets/' + mkt) #{settings.market_names[mkt]} + a.nav-link.active(href='/markets/' + mkt.id) + if mkt.logo != null && mkt.logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + mkt.logo, title=mkt.name, alt=mkt.name) + else + i.market-logo.fas.fa-question-circle + span #{mkt.name} else li.nav-item - a.nav-link(href='/markets/' + mkt) #{settings.market_names[mkt]} + a.nav-link(href='/markets/' + mkt.id) + if mkt.logo != null && mkt.logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + mkt.logo, title=mkt.name, alt=mkt.name) + else + i.market-logo.fas.fa-question-circle + span #{mkt.name} block market_view script. $(document).ready(function() { @@ -122,6 +132,8 @@ block content .col-md-12.cardSpacer .card.card-default.border-0 .card-header + if marketdata.market_logo != null && marketdata.market_logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo') strong #{marketdata.market_name} - #{marketdata.coin}/#{marketdata.exchange} - #{settings.locale.mkt_hours} if marketdata.data.chartdata == 'null' || marketdata.data.chartdata == '' || marketdata.data.chartdata == '[]' span.fas.fa-chart-line.float-right.view-chart-disabled.iquidus.market-toggle(style='cursor: pointer;', data-toggle='tooltip', data-placement='bottom', title=settings.locale.mkt_no_chart) @@ -217,6 +229,8 @@ block content .col-md-12.cardSpacer .card.card-default.border-0 .card-header + if marketdata.market_logo != null && marketdata.market_logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo') strong #{marketdata.market_name} - #{marketdata.coin}/#{marketdata.exchange} - #{settings.locale.mkt_hours} .card-body div#chart(style='height:300px;') @@ -224,6 +238,8 @@ block content .col-md-6.col-xs-12.cardSpacer .card.card-default.border-0.wrapper-border-0(class=theadClasses) .card-header(style='border-bottom-width:1px;') + if marketdata.market_logo != null && marketdata.market_logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo') strong #{settings.locale.mkt_buy_orders} table.table.table-striped.table-bordered.order-table thead(class=theadClasses) @@ -255,6 +271,8 @@ block content .col-md-6.col-xs-12.cardSpacer .card.card-default.border-0.wrapper-border-0(class=theadClasses) .card-header(style='border-bottom-width:1px;') + if marketdata.market_logo != null && marketdata.market_logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo') strong #{settings.locale.mkt_sell_orders} table.table.table-striped.table-bordered.order-table thead(class=theadClasses) @@ -287,6 +305,8 @@ block content .col-md-12 .card.card-default.border-0 .card-header + if marketdata.market_logo != null && marketdata.market_logo != '' + img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo') strong #{settings.locale.mkt_trade_history} table#history-table.table.table-hover.table-bordered.table-striped.table-paging.right-border-0(cellspacing='0') thead(class=theadClasses)