From 73b53cfa04f1063c0d4736f8b1e0f2eea317c0cf Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 22 Jun 2014 23:44:27 +1000 Subject: [PATCH] Add support for david --- index.html | 4 ++++ server.js | 35 +++++++++++++++++++++++++++++++++++ try.html | 4 ++++ 3 files changed, 43 insertions(+) diff --git a/index.html b/index.html index ebc80b0..3e0552a 100644 --- a/index.html +++ b/index.html @@ -107,6 +107,10 @@ I made the GitHub Badge Service. http://img.shields.io/gemnasium/mathiasbynens/he.svg + David: + + http://img.shields.io/david/visionmedia/express.svg + Packagist: http://img.shields.io/packagist/l/doctrine/orm.svg diff --git a/server.js b/server.js index f1dfb7e..123b81b 100644 --- a/server.js +++ b/server.js @@ -798,6 +798,41 @@ cache(function(data, match, sendBadge) { }); })); +// David integration +camp.route(/^\/david\/(.+)\.(svg|png|gif|jpg)$/, +cache(function(data, match, sendBadge) { + var userRepo = match[1]; // eg, `jekyll/jekyll`. + var format = match[2]; + var options = 'https://david-dm.org/' + userRepo + '/info.json'; + var badgeData = getBadgeData('dependencies', data); + request(options, function(err, res, buffer) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + } + try { + var data = JSON.parse(buffer); + var status = data.status; + if (status === 'notsouptodate') { + badgeData.colorscheme = 'yellow'; + status = 'up-to-date'; + } else if (status === 'outofdate') { + badgeData.colorscheme = 'red'; + status = 'out-of-date'; + } else if (status === 'uptodate') { + badgeData.colorscheme = 'brightgreen'; + status = 'up-to-date'; + } + badgeData.text[1] = status; + sendBadge(format, badgeData); + } catch(e) { + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + return; + } + }); +})); + // Gemnasium integration camp.route(/^\/gemnasium\/(.+)\.(svg|png|gif|jpg)$/, cache(function(data, match, sendBadge) { diff --git a/try.html b/try.html index 477156a..71be0cd 100644 --- a/try.html +++ b/try.html @@ -107,6 +107,10 @@ I made the GitHub Badge Service. http://img.shields.io/gemnasium/mathiasbynens/he.svg + David: + + http://img.shields.io/david/visionmedia/express.svg + Packagist: http://img.shields.io/packagist/l/doctrine/orm.svg