diff --git a/assets/index.html b/assets/index.html index 93b2674..9f47ca6 100644 --- a/assets/index.html +++ b/assets/index.html @@ -1,3 +1,2 @@ -
diff --git a/assets/scripts/app.js b/assets/scripts/app.js index 61d6eb2..31e494c 100644 --- a/assets/scripts/app.js +++ b/assets/scripts/app.js @@ -1,13 +1,33 @@ (function () { "use strict"; + function init() { + var css = '[data-dash-price-widget],[data-dash-price-widget] *,[data-dash-price-widget] :after,[data-dash-price-widget] :before{box-sizing:inherit;vertical-align:baseline;font-weight:inherit;font-family:inherit;font-style:inherit;font-size:100%;border:0;outline:0;padding:0;margin:0;line-height:1}[data-dash-price-widget]{display:block;max-width:18em;margin:.5em auto;border-radius:.5em;background-color:#1D76BC;box-sizing:border-box;color:#fff;padding:.5em;font-family:serif}[data-dash-price-widget] .dash-ticker--title{font-size:3em;float:left;height:1em;width:1em;overflow:hidden;text-indent:-999px;background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB3aWR0aD0iMjI2Ljc3N3B4IiBoZWlnaHQ9IjIyNi43NzdweCIgdmlld0JveD0iMCAwIDIyNi43NzcgMjI2Ljc3NyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjI2Ljc3NyAyMjYuNzc3IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTEzLjM4OCwwQzUwLjc2NiwwLDAsNTAuNzY2LDAsMTEzLjM4OGMwLDYyLjYyMyw1MC43NjYsMTEzLjM4OSwxMTMuMzg5LDExMy4zODkKCWM2Mi42MjMsMCwxMTMuMzg5LTUwLjc2NiwxMTMuMzg5LTExMy4zODlDMjI2Ljc3Nyw1MC43NjYsMTc2LjAxMSwwLDExMy4zODgsMHogTTU2LjU2MiwxMDQuODAyaDQ1LjI2NmwtNS4yMzgsMTcuMDI0SDUxLjMyNgoJTDU2LjU2MiwxMDQuODAyeiBNMTczLjgzLDk2Ljc3M2MtMS44MDEsNi41MDYtNy42NTYsMjYuMDIzLTEwLjA1OSwzMi45NDVjLTIuNCw2LjkyMi02LjgyOSwxMi43MzQtMTIuNTA2LDE2LjA1NwoJYy01LjY3NiwzLjMyMy03Ljc5Nyw0LjcxMi0xNS43MzEsNC43MTJINTQuMzAzbDUuNzIxLTE4LjU0Mmg3Ni4zOTVsMTEuNDE0LTM3LjEwOWgtNzUuNzlsNS43MjItMTguNTQxYzAsMCw4My42OTgsMCw4NC41NzcsMAoJYzMuODc1LDAsOC45OTYsMS43OTIsMTEuNDg4LDYuNjM5QzE3Ni4zMjEsODcuNzc1LDE3NS42MjksOTAuMjY3LDE3My44Myw5Ni43NzN6Ii8+Cjwvc3ZnPgo=);background-size:100% 100%}[data-dash-price-widget] .dash-ticker--wrapper{margin-left:3.5em}[data-dash-price-widget] .dash-ticker--usd{font-size:2em;text-align:center}[data-dash-price-widget] .dash-ticker--usd-change{text-align:right}[data-dash-price-widget] .dash-ticker--btc{text-align:left;margin-top:-1em}', + head = document.head || document.getElementsByTagName('head')[0], + style = document.createElement('style'); + + style.type = 'text/css'; + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + style.appendChild(document.createTextNode(css)); + } + + head.appendChild(style); + + updatePrices(); // update prices now + setInterval(updatePrices, 5 * 60 * 1000); // ...and every five minutes after this + } + function fetchJSONFile(path, callback) { var httpRequest = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); httpRequest.onreadystatechange = function () { if (httpRequest.readyState === 4) { if (httpRequest.status === 200) { var data = JSON.parse(httpRequest.responseText); - if (callback) { callback(data); } + if (callback) { + callback(data); + } } } }; @@ -25,55 +45,7 @@ fetchJSONFile('https://coinmarketcap-nexuist.rhcloud.com/api/dash/', function (data) { var markup = '
Dash Price
!price_usd
!percent_change_24h
!price_btc
'; -/* -{ - "symbol":"dash", - "position":"5", - "name":"Dash", - "market_cap":{ - "usd":42443061.2936, - "eur":37214670.34508659, - "cny":275818610.627892, - "gbp":29413847.89462938, - "cad":54771497.307551995, - "rub":2800409354.958081, - "hkd":329415538.6572049, - "jpy":4545448180.293412, - "aud":57612508.5013617, - "btc":92474.6576981 - }, - "price":{ - "usd":6.59801, - "eur":5.78522754014, - "cny":42.87753747356, - "gbp":4.572546292190001, - "cad":8.5145339647, - "rub":435.33921364181, - "hkd":51.20947810952, - "jpy":706.6152071500101, - "aud":8.95618496007, - "btc":0.0143757 - }, - "supply":"6432706", - "volume":{ - "usd":300399, - "eur":263394.048786, - "cny":1952159.723844, - "gbp":208182.21458100004, - "cad":387655.89753, - "rub":19820440.472018998, - "hkd":2331502.379448, - "jpy":32171291.285198998, - "aud":407763.70539300004, - "btc":654.506 - }, - "change":"-3.01", - "timestamp":"1462626382.036" -} -*/ - - console.log(data); - if (data) { + if (data && data.price && data.price.usd && data.price.btc && data.change) { markup = markup.replace(/!price_usd/g, makeCurrencyString(data.price.usd) + " USD"); markup = markup.replace(/!percent_change_24h/g, data.change + "%"); markup = markup.replace(/!price_btc/g, makeCurrencyString(data.price.btc) + " BTC"); @@ -82,6 +54,5 @@ }); } - updatePrices(); // update prices now - setInterval(updatePrices, 5 * 60 * 1000); // ...and every five minutes after this + init(); }()); diff --git a/dist/index.html b/dist/index.html index ed058d8..9f47ca6 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,149 +1,2 @@ -
- + diff --git a/dist/scripts/app.js b/dist/scripts/app.js new file mode 100644 index 0000000..3e1abeb --- /dev/null +++ b/dist/scripts/app.js @@ -0,0 +1 @@ +(function(){"use strict";function init(){var css="[data-dash-price-widget],[data-dash-price-widget] *,[data-dash-price-widget] :after,[data-dash-price-widget] :before{box-sizing:inherit;vertical-align:baseline;font-weight:inherit;font-family:inherit;font-style:inherit;font-size:100%;border:0;outline:0;padding:0;margin:0;line-height:1}[data-dash-price-widget]{display:block;max-width:18em;margin:.5em auto;border-radius:.5em;background-color:#1D76BC;box-sizing:border-box;color:#fff;padding:.5em;font-family:serif}[data-dash-price-widget] .dash-ticker--title{font-size:3em;float:left;height:1em;width:1em;overflow:hidden;text-indent:-999px;background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB3aWR0aD0iMjI2Ljc3N3B4IiBoZWlnaHQ9IjIyNi43NzdweCIgdmlld0JveD0iMCAwIDIyNi43NzcgMjI2Ljc3NyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjI2Ljc3NyAyMjYuNzc3IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTEzLjM4OCwwQzUwLjc2NiwwLDAsNTAuNzY2LDAsMTEzLjM4OGMwLDYyLjYyMyw1MC43NjYsMTEzLjM4OSwxMTMuMzg5LDExMy4zODkKCWM2Mi42MjMsMCwxMTMuMzg5LTUwLjc2NiwxMTMuMzg5LTExMy4zODlDMjI2Ljc3Nyw1MC43NjYsMTc2LjAxMSwwLDExMy4zODgsMHogTTU2LjU2MiwxMDQuODAyaDQ1LjI2NmwtNS4yMzgsMTcuMDI0SDUxLjMyNgoJTDU2LjU2MiwxMDQuODAyeiBNMTczLjgzLDk2Ljc3M2MtMS44MDEsNi41MDYtNy42NTYsMjYuMDIzLTEwLjA1OSwzMi45NDVjLTIuNCw2LjkyMi02LjgyOSwxMi43MzQtMTIuNTA2LDE2LjA1NwoJYy01LjY3NiwzLjMyMy03Ljc5Nyw0LjcxMi0xNS43MzEsNC43MTJINTQuMzAzbDUuNzIxLTE4LjU0Mmg3Ni4zOTVsMTEuNDE0LTM3LjEwOWgtNzUuNzlsNS43MjItMTguNTQxYzAsMCw4My42OTgsMCw4NC41NzcsMAoJYzMuODc1LDAsOC45OTYsMS43OTIsMTEuNDg4LDYuNjM5QzE3Ni4zMjEsODcuNzc1LDE3NS42MjksOTAuMjY3LDE3My44Myw5Ni43NzN6Ii8+Cjwvc3ZnPgo=);background-size:100% 100%}[data-dash-price-widget] .dash-ticker--wrapper{margin-left:3.5em}[data-dash-price-widget] .dash-ticker--usd{font-size:2em;text-align:center}[data-dash-price-widget] .dash-ticker--usd-change{text-align:right}[data-dash-price-widget] .dash-ticker--btc{text-align:left;margin-top:-1em}",head=document.head||document.getElementsByTagName("head")[0],style=document.createElement("style");style.type="text/css";if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}head.appendChild(style);updatePrices();setInterval(updatePrices,5*60*1e3)}function fetchJSONFile(path,callback){var httpRequest=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");httpRequest.onreadystatechange=function(){if(httpRequest.readyState===4){if(httpRequest.status===200){var data=JSON.parse(httpRequest.responseText);if(callback){callback(data)}}}};httpRequest.open("GET",path);httpRequest.send()}function makeCurrencyString(number){return number.toPrecision(3).length>number.toFixed(2)?number.toPrecision(3):number.toFixed(2)}function updatePrices(){fetchJSONFile("https://coinmarketcap-nexuist.rhcloud.com/api/dash/",function(data){var markup='
Dash Price
!price_usd
!percent_change_24h
!price_btc
';if(data&&data.price&&data.price.usd&&data.price.btc&&data.change){markup=markup.replace(/!price_usd/g,makeCurrencyString(data.price.usd)+" USD");markup=markup.replace(/!percent_change_24h/g,data.change+"%");markup=markup.replace(/!price_btc/g,makeCurrencyString(data.price.btc)+" BTC");document.querySelector("[data-dash-price-widget]").innerHTML=markup}})}init()})(); diff --git a/package.json b/package.json index 89fe02d..1856e2c 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,9 @@ "description": "Embeddable dash price widget", "scripts": { "lint": "echo '=> linting' && jshint assets/scripts/*.js", - "inline": "echo '=> inlining' && inline-assets assets/index.html dist/index.html", - "test": "npm run -s lint && npm run -s inline" + "compress": "echo '=> compressing JS' && uglifyjs assets/scripts/app.js --output dist/scripts/app.js", + "copy": "echo '=> copying HTML' && cp assets/index.html dist/index.html", + "test": "npm run -s lint && npm run -s copy && npm run -s compress" }, "repository": { "type": "git", @@ -18,7 +19,6 @@ }, "homepage": "https://github.com/seigler/Dash-html-ticker#readme", "devDependencies": { - "inline-assets": "^1.0.0", "jshint": "^2.9.2", "uglify-js": "^2.6.2" }