From 47689adb731d8a51a7d620a3c6502fbab4e824f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Mon, 23 Feb 2015 23:27:17 +0100 Subject: [PATCH 1/3] Add CTAN integration --- server.js | 26 ++++++++++++++++++++++++++ try.html | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/server.js b/server.js index 0d48d2c..6842aa0 100644 --- a/server.js +++ b/server.js @@ -2929,6 +2929,32 @@ cache(function(data, match, sendBadge, request) { }); })); +// CTAN integration. +camp.route(/^\/ctan\/v\/([^\/]+)\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var pkg = match[1]; // eg, tex + var format = match[2]; + var url = 'http://www.ctan.org/json/pkg/'+pkg; + var badgeData = getBadgeData('ctan', data); + request(url, function (err, res, buffer) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(badgeData, format); + } + try { + var data = JSON.parse(buffer); + var version = data.version.number; + var vdata = versionColor(version); + badgeData.text[1] = vdata.version; + badgeData.colorscheme = vdata.color; + sendBadge(format, badgeData); + } catch (e) { + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + } + })} +)); + // Any badge. camp.route(/^\/(:|badge\/)(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+)\.(svg|png|gif|jpg)$/, function(data, match, end, ask) { diff --git a/try.html b/try.html index 5591f28..ca0c0c9 100644 --- a/try.html +++ b/try.html @@ -370,6 +370,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/apm/v/vim-mode.svg + CTAN: + + https://img.shields.io/ctan/v/tex.svg +

Miscellaneous

From 3229ed19a9b1457ef7288a2ccffaea0a69a12b4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Mon, 23 Feb 2015 23:42:18 +0100 Subject: [PATCH 2/3] Add CTAN license badge --- server.js | 27 ++++++++++++++++++++------- try.html | 4 ++++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/server.js b/server.js index 6842aa0..4833a6a 100644 --- a/server.js +++ b/server.js @@ -2930,10 +2930,11 @@ cache(function(data, match, sendBadge, request) { })); // CTAN integration. -camp.route(/^\/ctan\/v\/([^\/]+)\.(svg|png|gif|jpg|json)$/, +camp.route(/^\/ctan\/([^\/])\/([^\/]+)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { - var pkg = match[1]; // eg, tex - var format = match[2]; + var info = match[1]; // either `v` or `l` + var pkg = match[2]; // eg, tex + var format = match[3]; var url = 'http://www.ctan.org/json/pkg/'+pkg; var badgeData = getBadgeData('ctan', data); request(url, function (err, res, buffer) { @@ -2943,11 +2944,23 @@ cache(function(data, match, sendBadge, request) { } try { var data = JSON.parse(buffer); + + if (info == 'v') { var version = data.version.number; - var vdata = versionColor(version); - badgeData.text[1] = vdata.version; - badgeData.colorscheme = vdata.color; - sendBadge(format, badgeData); + var vdata = versionColor(version); + badgeData.text[1] = vdata.version; + badgeData.colorscheme = vdata.color; + sendBadge(format, badgeData); + } else if (info == 'l') { + var license = data.license; + if (license == '') { + badgeData.text[1] = 'Unknown'; + } else { + badgeData.text[1] = license; + badgeData.colorscheme = 'blue'; + } + sendBadge(format, badgeData); + } } catch (e) { badgeData.text[1] = 'invalid'; sendBadge(format, badgeData); diff --git a/try.html b/try.html index ca0c0c9..cd8e970 100644 --- a/try.html +++ b/try.html @@ -446,6 +446,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/cocoapods/l/AFNetworking.svg + CTAN: + + https://img.shields.io/ctan/l/tex.svg + CocoaPods: https://img.shields.io/cocoapods/p/AFNetworking.svg From d394c5ca99313d1874e77d425a83c584de678f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Tue, 24 Feb 2015 21:20:38 +0100 Subject: [PATCH 3/3] Use === instead of == --- server.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server.js b/server.js index 4833a6a..ea3157e 100644 --- a/server.js +++ b/server.js @@ -2945,15 +2945,15 @@ cache(function(data, match, sendBadge, request) { try { var data = JSON.parse(buffer); - if (info == 'v') { + if (info === 'v') { var version = data.version.number; var vdata = versionColor(version); badgeData.text[1] = vdata.version; badgeData.colorscheme = vdata.color; sendBadge(format, badgeData); - } else if (info == 'l') { + } else if (info === 'l') { var license = data.license; - if (license == '') { + if (license === '') { badgeData.text[1] = 'Unknown'; } else { badgeData.text[1] = license;