diff --git a/server.js b/server.js index 3f2115d..06841f3 100644 --- a/server.js +++ b/server.js @@ -4934,6 +4934,37 @@ cache(function(data, match, sendBadge, request) { })} )); +// beerpay.io integration. +// e.g. JSON response: https://beerpay.io/api/v1/beerpay/projects/beerpay.io +// e.g. SVG badge: https://beerpay.io/beerpay/beerpay.io/badge.svg?style=flat-square +camp.route(/^\/beerpay\/(.*)\/(.*)\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var user = match[1]; + var project = match[2]; + var format = match[3]; + + var apiUrl = 'https://beerpay.io/api/v1/' + user + '/projects/' + project; + var badgeData = getBadgeData('beerpay', data); + + request(apiUrl, function (err, res, buffer) { + if (err) { + badgeData.text[1] = 'inaccessible'; + sendBadge(badgeData, format); + return; + } + + try { + var data = JSON.parse(buffer); + badgeData.text[1] = '$' + (data.total_amount || 0); + badgeData.colorscheme = 'red'; + sendBadge(format, badgeData); + } catch (e) { + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + } + }); +})); + // Maintenance integration. camp.route(/^\/maintenance\/([^\/]+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { diff --git a/try.html b/try.html index daa4a97..ff16923 100644 --- a/try.html +++ b/try.html @@ -582,6 +582,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
https://img.shields.io/bountysource/team/mozilla-core/activity.svg
https://img.shields.io/beerpay/hashdog/scrapfy-chrome-extension.svg
https://img.shields.io/codeclimate/github/kabisaict/flow.svg