Add tag badges for StackExchange

This commit is contained in:
Raphaël Pinson 2015-03-09 15:41:19 +01:00 committed by Lars Brinkhoff
parent 900b482915
commit 1bfabb9ed7
2 changed files with 27 additions and 3 deletions

View File

@ -4524,11 +4524,17 @@ camp.route(/^\/stackexchange\/([^\/]+)\/([^\/])\/([^\/]+)\.(svg|png|gif|jpg|json
cache(function(data, match, sendBadge, request) {
var site = match[1]; // eg, stackoverflow
var info = match[2]; // either `r`
var user = match[3]; // eg, 232250
var item = match[3]; // eg, 232250
var format = match[4];
var path;
if (info === 'r') {
path = 'users/'+item;
} else if (info === 't') {
path = 'tags/'+item+'/info';
}
var options = {
method: 'GET',
uri: 'https://api.stackexchange.com/2.2/users/'+user+'?site='+site,
uri: 'https://api.stackexchange.com/2.2/'+path+'?site='+site,
encoding: null
}
var badgeData = getBadgeData(site, data);
@ -4555,8 +4561,22 @@ cache(function(data, match, sendBadge, request) {
} else {
badgeData.colorscheme = 'brightgreen';
}
sendBadge(format, badgeData);
} else if (info === 't') {
var count = data.items[0].count;
badgeData.text[1] = metric(count)+' questions';
if (count === 0) {
badgeData.colorscheme = 'red';
} else if (count < 1000) {
badgeData.colorscheme = 'yellow';
} else if (count < 10000) {
badgeData.colorscheme = 'yellowgreen';
} else if (count < 20000) {
badgeData.colorscheme = 'green';
} else {
badgeData.colorscheme = 'brightgreen';
}
}
sendBadge(format, badgeData);
} catch (e) {
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);

View File

@ -746,6 +746,10 @@ Pixel-perfect &nbsp; Retina-ready &nbsp; Fast &nbsp; Consistent &nbsp; Hackable
<td><img src='/stackexchange/tex/r/951.svg' alt=''/></td>
<td><code>https://img.shields.io/stackexchange/tex/r/951.svg</code></td>
</tr>
<tr><th> StackExchange: </th>
<td><img src='/stackexchange/stackoverflow/t/augeas.svg' alt=''/></td>
<td><code>https://img.shields.io/stackexchange/stackoverflow/t/augeas.svg</code></td>
</tr>
</tbody></table>
<h2 id="your-badge"> Your Badge </h2>