Add CPAN integration

This commit is contained in:
Raphaël Pinson 2015-02-24 11:54:38 +01:00
parent 0645952af0
commit 0f69b6809d
2 changed files with 42 additions and 0 deletions

View File

@ -2929,6 +2929,40 @@ cache(function(data, match, sendBadge, request) {
});
}));
camp.route(/^\/cpan\/([^\/]+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var info = match[1]; // either `v` or `l`
var pkg = match[2]; // eg, Config-Augeas
var format = match[3];
var badgeData = getBadgeData('cpan', data);
var url = 'https://api.metacpan.org/v0/release/'+pkg;
request(url, function(err, res, buffer) {
if (err != null) {
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
return;
}
try {
var data = JSON.parse(buffer);
if (info == 'v') {
var version = data.version;
var vdata = versionColor(version);
badgeData.text[1] = vdata.version;
badgeData.colorscheme = vdata.color;
} else if (info == 'l') {
var license = data.license[0];
badgeData.text[1] = license;
badgeData.colorscheme = 'blue';
}
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) {

View File

@ -370,6 +370,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
<td><img src='/apm/v/vim-mode.svg' alt=''/></td>
<td><code>https://img.shields.io/apm/v/vim-mode.svg</code></td>
</tr>
<tr><th> CPAN: </th>
<td><img src='/cpan/v/Config-Augeas.svg' alt=''/></td>
<td><code>https://img.shields.io/cpan/v/Config-Augeas.svg</code></td>
</tr>
</tbody></table>
<h3> Miscellaneous </h3>
@ -442,6 +446,10 @@ Pixel-perfect &nbsp; Retina-ready &nbsp; Fast &nbsp; Consistent &nbsp; Hackable
<td><img src='/cocoapods/l/AFNetworking.svg' alt='' /></td>
<td><code>https://img.shields.io/cocoapods/l/AFNetworking.svg</code></td>
</tr>
<tr><th> CPAN: </th>
<td><img src='/cpan/l/Config-Augeas.svg' alt='' /></td>
<td><code>https://img.shields.io/cpan/l/Config-Augeas.svg</code></td>
</tr>
<tr><th> CocoaPods: </th>
<td><img src='/cocoapods/p/AFNetworking.svg' alt='' /></td>
<td><code>https://img.shields.io/cocoapods/p/AFNetworking.svg</code></td>