diff --git a/index.html b/index.html index 7f4ab22..7c84220 100644 --- a/index.html +++ b/index.html @@ -212,6 +212,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable

Downloads

+ + + + @@ -925,6 +929,10 @@ is where the current server got started. PeterDaveHello +
+ + sagiegurari +

:wq

diff --git a/server.js b/server.js index 92e2eee..4cd4ac0 100644 --- a/server.js +++ b/server.js @@ -2633,15 +2633,29 @@ cache(function(data, match, sendBadge, request) { })); // GitHub release-download-count integration. -camp.route(/^\/github\/downloads\/([^\/]+)\/([^\/]+)\/([^\/]+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/, +camp.route(/^\/github\/downloads\/([^\/]+)\/([^\/]+)(\/[^\/]+)?\/([^\/]+)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, qubyte/rubidium var repo = match[2]; - var tag = match[3]; + + var tag = match[3]; //null for all releases var asset_name = match[4].toLowerCase(); // eg. total, atom-amd64.deb, atom.x86_64.rpm var format = match[5]; - var release_path = tag !== 'latest' ? 'tags/' + match[3] : 'latest'; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/releases/' + release_path; + + if (tag && (tag.indexOf('/') !== -1)) { + tag = tag.split('/').join(''); + } + + var total = true; + if (tag) { + total = false; + } + + var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/releases'; + if (!total) { + var release_path = tag !== 'latest' ? 'tags/' + tag : 'latest'; + apiUrl = apiUrl + '/' + release_path; + } // Using our OAuth App secret grants us 5000 req/hour // instead of the standard 60 req/hour. if (serverSecrets) { @@ -2665,14 +2679,32 @@ cache(function(data, match, sendBadge, request) { } var data = JSON.parse(buffer); var downloads = 0; - data.assets.forEach(function (asset) { - if (asset_name === 'total' || asset_name === asset.name.toLowerCase()) { - downloads += asset.download_count; + + var label; + if (total) { + data.forEach(function (tagData) { + tagData.assets.forEach(function (asset) { + if (asset_name === 'total' || asset_name === asset.name.toLowerCase()) { + downloads += asset.download_count; + } + }); + }); + + label = 'total'; + if (asset_name !== 'total') { + label += ' ' + '[' + asset_name + ']'; + } + } else { + data.assets.forEach(function (asset) { + if (asset_name === 'total' || asset_name === asset.name.toLowerCase()) { + downloads += asset.download_count; + } + }); + + label = tag !== 'latest' ? tag : ''; + if (asset_name !== 'total') { + label += ' ' + '[' + asset_name + ']'; } - }); - var label = tag !== 'latest' ? tag : ''; - if (asset_name !== 'total') { - label += ' ' + '[' + asset_name + ']'; } badgeData.text[1] = metric(downloads) + ' ' + label; badgeData.colorscheme = 'brightgreen'; diff --git a/try.html b/try.html index e277344..e53f358 100644 --- a/try.html +++ b/try.html @@ -211,6 +211,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
Github All Releases: https://img.shields.io/github/downloads/atom/atom/total.svg
Github Releases: https://img.shields.io/github/downloads/atom/atom/latest/total.svg

Downloads

+ + + + @@ -924,6 +928,10 @@ is where the current server got started. PeterDaveHello +
+ + sagiegurari +

:wq

Github All Releases: https://img.shields.io/github/downloads/atom/atom/total.svg
Github Releases: https://img.shields.io/github/downloads/atom/atom/latest/total.svg