From b132e01afade50be24296c9e672ceb8ea9b80aa3 Mon Sep 17 00:00:00 2001 From: Kristian Hellang Date: Wed, 25 Jun 2014 02:06:43 +0200 Subject: [PATCH] Added support for chocolatey version and download count --- server.js | 28 ++++++++++++++++------------ try.html | 14 +++++++++++++- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/server.js b/server.js index 317ee31..81b8419 100644 --- a/server.js +++ b/server.js @@ -1155,13 +1155,15 @@ cache(function(data, match, sendBadge) { }); })); -// NuGet version integration. -camp.route(/^\/nuget\/v\/(.*)\.(svg|png|gif|jpg)$/, +// NuGet/chocolatey version integration. +camp.route(/^\/(nuget|chocolatey)\/v\/(.*)\.(svg|png|gif|jpg)$/, cache(function(data, match, sendBadge) { - var repo = match[1]; // eg, `Nuget.Core`. - var format = match[2]; - var apiUrl = 'https://www.nuget.org/api/v2/Packages()?$filter=Id%20eq%20%27' + repo + '%27%20and%20IsLatestVersion%20eq%20true'; - var badgeData = getBadgeData('nuget', data); + var site = match[1]; + var repo = match[2]; // eg, `Nuget.Core`. + var format = match[3]; + var filter = 'Id eq \'' + repo + '\' and IsLatestVersion eq true'; + var apiUrl = 'https://www.' + site + '.org/api/v2/Packages()?$filter=' + encodeURIComponent(filter); + var badgeData = getBadgeData(site, data); request(apiUrl, { headers: { 'Accept': 'application/atom+json,application/json' } }, function(err, res, buffer) { if (err != null) { badgeData.text[1] = 'inaccessible'; @@ -1169,7 +1171,8 @@ cache(function(data, match, sendBadge) { } try { var data = JSON.parse(buffer); - var version = data.d.results[0].NormalizedVersion; + var result = data.d.results[0]; + var version = result.NormalizedVersion || result.Version; badgeData.text[1] = 'v' + version; if (version[0] === '0') { badgeData.colorscheme = 'orange'; @@ -1184,13 +1187,14 @@ cache(function(data, match, sendBadge) { }); })); -// NuGet download count integration. -camp.route(/^\/nuget\/dt\/(.*)\.(svg|png|gif|jpg)$/, +// NuGet/chocolatey download count integration. +camp.route(/^\/(nuget|chocolatey)\/dt\/(.*)\.(svg|png|gif|jpg)$/, cache(function(data, match, sendBadge) { - var repo = match[1]; // eg, `Nuget.Core`. - var format = match[2]; + var site = match[1]; + var repo = match[2]; // eg, `Nuget.Core`. + var format = match[3]; var filter = 'Id eq \'' + repo + '\' and IsLatestVersion eq true'; - var apiUrl = 'https://www.nuget.org/api/v2/Packages()?$filter=' + encodeURIComponent(filter); + var apiUrl = 'https://www.' + site + '.org/api/v2/Packages()?$filter=' + encodeURIComponent(filter); var badgeData = getBadgeData('downloads', data); request(apiUrl, { headers: { 'Accept': 'application/atom+json,application/json' } }, function(err, res, buffer) { if (err != null) { diff --git a/try.html b/try.html index b7dd2ac..58994c8 100644 --- a/try.html +++ b/try.html @@ -175,6 +175,10 @@ I made the GitHub Badge Service. http://img.shields.io/nuget/dt/Microsoft.AspNet.Mvc.svg + Chocolatey: + + http://img.shields.io/chocolatey/dt/scriptcs.svg + PyPI: http://img.shields.io/pypi/dm/Django.svg @@ -241,6 +245,10 @@ I made the GitHub Badge Service. http://img.shields.io/nuget/v/Nuget.Core.svg + Chocolatey: + + http://img.shields.io/chocolatey/v/git.svg + Puppet Forge: http://img.shields.io/puppetforge/v/vStone/percona.svg @@ -312,6 +320,7 @@ All the activity and the code sits seanlinsley +
CodeBlock @@ -324,7 +333,6 @@ All the activity and the code sits nathany -
whit537 @@ -340,6 +348,7 @@ All the activity and the code sits cainus +
jbowes @@ -361,6 +370,9 @@ All the activity and the code sits avanderhoorn + + khellang +

:wq