From aa981cba84da6a7e45fd60718da20ede0f0f8ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= Date: Mon, 10 Apr 2017 20:40:16 +0200 Subject: [PATCH] iTunes app store version (#840) --- server.js | 27 +++++++++++++++++++++++++++ try.html | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/server.js b/server.js index 03d9c48..b091fcf 100644 --- a/server.js +++ b/server.js @@ -1818,6 +1818,33 @@ cache(function(data, match, sendBadge, request) { }); })); +// iTunes App Store version +camp.route(/^\/itunes\/v\/(.+)\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var bundleId = match[1]; // eg, `324684580` + var format = match[2]; + var apiUrl = 'https://itunes.apple.com/lookup?id=' + bundleId; + var badgeData = getBadgeData('itunes app store', data); + request(apiUrl, function(err, res, buffer) { + if (err !== null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + return; + } + try { + var data = JSON.parse(buffer); + var version = data.results[0].version; + var vdata = versionColor(version); + badgeData.text[1] = 'v' + version; + badgeData.colorscheme = vdata.color; + sendBadge(format, badgeData); + } catch(e) { + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + } + }); +})); + // Gem version integration. camp.route(/^\/gem\/v\/(.*)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { diff --git a/try.html b/try.html index dbfa82b..b786239 100644 --- a/try.html +++ b/try.html @@ -583,6 +583,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/amo/v/dustman.svg + Itunes App Store: + + https://img.shields.io/itunes/v/BUNDLE_ID.svg +

Social