From c73f7d098f942919f613b0f564faf4447d900c75 Mon Sep 17 00:00:00 2001 From: Thaddee Tyl Date: Sat, 4 Jan 2014 14:16:25 +0100 Subject: [PATCH] Server: allow arbitrary hex colors. Fixes #12 since that ensures Buckler parity. --- server.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 5f8c3c1..4391d42 100644 --- a/server.js +++ b/server.js @@ -15,6 +15,8 @@ function escapeFormat(t) { .replace(/__/g, '_').replace(/--/g, '-'); } +function sixHex(s) { return /^[0-9a-fA-F]{6}$/.test(s); } + camp.route(/^\/(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+).svg$/, function(data, match, end, ask) { var subject = escapeFormat(match[1]); @@ -22,7 +24,13 @@ camp.route(/^\/(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+).svg$/, var color = escapeFormat(match[5]); ask.res.setHeader('Content-Type', 'image/svg+xml'); try { - badge({text: [subject, status], colorscheme: color}, function(res) { + var badgeData = {text: [subject, status]}; + if (sixHex(color)) { + badgeData.colorB = '#' + color; + } else { + badgeData.colorscheme = color; + } + badge(badgeData, function(res) { end(null, {template: streamFromString(res)}); }); } catch(e) {