diff --git a/index.html b/index.html index 7f4ab226996978e499d970db6590c4e5f78e42a3..7c842204a6f888d9a90a8960078aa09a4297fb3a 100644 --- a/index.html +++ b/index.html @@ -212,6 +212,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable </tbody></table> <h3 id="downloads"> Downloads </h3> <table class='badge'><tbody> + <tr><th data-keywords='github'> Github All Releases: </th> + <td><img src='https://img.shields.io/github/downloads/atom/atom/total.svg' alt=''/></td> + <td><code>https://img.shields.io/github/downloads/atom/atom/total.svg</code></td> + </tr> <tr><th data-keywords='github'> Github Releases: </th> <td><img src='https://img.shields.io/github/downloads/atom/atom/latest/total.svg' alt=''/></td> <td><code>https://img.shields.io/github/downloads/atom/atom/latest/total.svg</code></td> @@ -925,6 +929,10 @@ is where the current server got started. <a class='photo' href='https://github.com/PeterDaveHello'> <img alt='PeterDaveHello' src='https://avatars3.githubusercontent.com/u/3691490?s=80'> </a> +<br> +<a class='photo' href='https://github.com/sagiegurari'> + <img alt='sagiegurari' src='https://avatars.githubusercontent.com/u/8112599?s=80'> +</a> <p><small>:wq</small></p> </main> diff --git a/server.js b/server.js index 92e2eeecc25103ce52519b5c994e7970d156233c..4cd4ac0dde1939d3eca58918b2c2d99aaed1ebb6 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 e27734468e62657f41e10d72d6a0e5a2fbbee1e7..e53f3587e88555c683afdabad5bc474fdc993869 100644 --- a/try.html +++ b/try.html @@ -211,6 +211,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable </tbody></table> <h3 id="downloads"> Downloads </h3> <table class='badge'><tbody> + <tr><th data-keywords='github'> Github All Releases: </th> + <td><img src='https://img.shields.io/github/downloads/atom/atom/total.svg' alt=''/></td> + <td><code>https://img.shields.io/github/downloads/atom/atom/total.svg</code></td> + </tr> <tr><th data-keywords='github'> Github Releases: </th> <td><img src='/github/downloads/atom/atom/latest/total.svg' alt=''/></td> <td><code>https://img.shields.io/github/downloads/atom/atom/latest/total.svg</code></td> @@ -924,6 +928,10 @@ is where the current server got started. <a class='photo' href='https://github.com/PeterDaveHello'> <img alt='PeterDaveHello' src='https://avatars3.githubusercontent.com/u/3691490?s=80'> </a> +<br> +<a class='photo' href='https://github.com/sagiegurari'> + <img alt='sagiegurari' src='https://avatars.githubusercontent.com/u/8112599?s=80'> +</a> <p><small>:wq</small></p> </main>