Add CocoaPods downloads badges.

This commit is contained in:
Nikita Lutsenko 2016-05-04 19:33:18 -07:00
parent fc223c9f86
commit f8861a4c51
2 changed files with 53 additions and 0 deletions

View File

@ -2719,6 +2719,47 @@ cache(function(data, match, sendBadge, request) {
});
}));
// Cocoapods Downloads integration.
camp.route(/^\/cocoapods\/(dm|dw|dt)\/(.*)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var info = match[1]; // One of these: "dm", "dw", "dt"
var spec = match[2]; // eg, AFNetworking
var format = match[3];
var apiUrl = 'http://metrics.cocoapods.org/api/v1/pods/' + spec;
var badgeData = getBadgeData('pod', 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 downloads = 0;
badgeData.text[0] = getLabel('downloads', data);
switch (info.charAt(1)) {
case 'm':
downloads = data.stats.download_month;
badgeData.text[1] = metric(downloads) + '/month';
break;
case 'w':
downloads = data.stats.download_week;
badgeData.text[1] = metric(downloads) + '/week';
break;
case 't':
downloads = data.stats.download_total;
badgeData.text[1] = metric(downloads);
break;
}
badgeData.colorscheme = downloadCountColor(downloads);
sendBadge(format, badgeData);
} catch(e) {
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
}
});
}));
// GitHub tag integration.
camp.route(/^\/github\/tag\/([^\/]+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {

View File

@ -391,6 +391,18 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
<td><img src='/website-up-down-green-red/http/shields.io.svg' alt=''/></td>
<td><code>https://img.shields.io/website-up-down-green-red/http/shields.io.svg</code></td>
</tr>
<tr><th data-keywords='cocoapods'> CocoaPods: </th>
<td><img src='/cocoapods/dt/AFNetworking.svg' alt='' /></td>
<td><code>https://img.shields.io/cocoapods/dt/AFNetworking.svg</code></td>
</tr>
<tr><th data-keywords='cocoapods'> CocoaPods: </th>
<td><img src='/cocoapods/dm/AFNetworking.svg' alt='' /></td>
<td><code>https://img.shields.io/cocoapods/dm/AFNetworking.svg</code></td>
</tr>
<tr><th data-keywords='cocoapods'> CocoaPods: </th>
<td><img src='/cocoapods/dw/AFNetworking.svg' alt='' /></td>
<td><code>https://img.shields.io/cocoapods/dw/AFNetworking.svg</code></td>
</tr>
</tbody></table>
<h3 id="version"> Version </h3>
<table class='badge'><tbody>