Merge remote-tracking branch 'sanemat/chore/chrome-web-store-re-try'
This commit is contained in:
commit
4cbdf9ab4f
|
@ -26,7 +26,8 @@
|
|||
"camp": "~16.0.0",
|
||||
"semver": "~4.3.3",
|
||||
"bower": "~1.4.1",
|
||||
"promise": "~7.0.0"
|
||||
"promise": "~7.0.0",
|
||||
"chrome-web-store-item-property": "^1.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ass": "~0.0.6",
|
||||
|
|
48
server.js
48
server.js
|
@ -5007,6 +5007,54 @@ cache(function(data, match, sendBadge, request) {
|
|||
});
|
||||
}));
|
||||
|
||||
// Chrome web store integration
|
||||
camp.route(/^\/chrome-web-store\/(v|d|price|rating|rating-count)\/(.*)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
var type = match[1];
|
||||
var storeId = match[2]; // eg, nimelepbpejjlbmoobocpfnjhihnpked
|
||||
var format = match[3];
|
||||
var badgeData = getBadgeData('chrome web store', data);
|
||||
var url = 'https://chrome.google.com/webstore/detail/' + storeId + '?hl=en&gl=US';
|
||||
var chromeWebStore = require('chrome-web-store-item-property');
|
||||
request(url, function(err, res, buffer) {
|
||||
if (err != null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
chromeWebStore.convert(buffer)
|
||||
.then(function (value) {
|
||||
if (type === 'v') {
|
||||
var vdata = versionColor(value.version);
|
||||
badgeData.text[1] = vdata.version;
|
||||
badgeData.colorscheme = vdata.color;
|
||||
} else if (type === 'd') {
|
||||
var downloads = value.interactionCount.UserDownloads;
|
||||
badgeData.text[0] = 'downloads';
|
||||
badgeData.text[1] = metric(downloads) + ' total';
|
||||
badgeData.colorscheme = downloadCountColor(downloads);
|
||||
} else if (type === 'price') {
|
||||
badgeData.text[1] = value.price;
|
||||
badgeData.colorscheme = 'brightgreen';
|
||||
} else if (type === 'rating') {
|
||||
var rating = Math.round(value.ratingValue * 100) / 100;
|
||||
badgeData.text[0] = 'rating';
|
||||
badgeData.text[1] = rating;
|
||||
badgeData.colorscheme = floorCountColor(rating, 2, 3, 4);
|
||||
} else if (type === 'rating-count') {
|
||||
var ratingCount = value.ratingCount;
|
||||
badgeData.text[0] = 'rating count';
|
||||
badgeData.text[1] = metric(ratingCount) + ' total';
|
||||
badgeData.colorscheme = floorCountColor(ratingCount, 5, 50, 500);
|
||||
}
|
||||
sendBadge(format, badgeData);
|
||||
}).catch(function (err) {
|
||||
badgeData.text[1] = 'invalid';
|
||||
sendBadge(format, badgeData);
|
||||
});
|
||||
});
|
||||
}));
|
||||
|
||||
// Any badge.
|
||||
camp.route(/^\/(:|badge\/)(([^-]|--)*?)-(([^-]|--)*)-(([^-]|--)+)\.(svg|png|gif|jpg)$/,
|
||||
function(data, match, end, ask) {
|
||||
|
|
20
try.html
20
try.html
|
@ -383,6 +383,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
|
|||
<td><img src='/packagecontrol/dt/Package%20Control.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/packagecontrol/dt/Package%20Control.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='chrome'> Chrome Web Store: </th>
|
||||
<td><img src='/chrome-web-store/d/nimelepbpejjlbmoobocpfnjhihnpked.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/chrome-web-store/d/nimelepbpejjlbmoobocpfnjhihnpked.svg</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<h3 id="version"> Version </h3>
|
||||
<table class='badge'><tbody>
|
||||
|
@ -518,6 +522,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
|
|||
<td><img src='/aur/version/yaourt.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/aur/version/yaourt.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='chrome'> Chrome Web Store: </th>
|
||||
<td><img src='/chrome-web-store/v/nimelepbpejjlbmoobocpfnjhihnpked.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/chrome-web-store/v/nimelepbpejjlbmoobocpfnjhihnpked.svg</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3 id="social"> Social </h3>
|
||||
|
@ -765,6 +773,18 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
|
|||
<td><img src='/waffle/label/evancohen/smart-mirror/in%20progress.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/waffle/label/evancohen/smart-mirror/in%20progress.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='chrome'> Chrome Web Store: </th>
|
||||
<td><img src='/chrome-web-store/price/nimelepbpejjlbmoobocpfnjhihnpked.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/chrome-web-store/price/nimelepbpejjlbmoobocpfnjhihnpked.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='chrome'> Chrome Web Store: </th>
|
||||
<td><img src='/chrome-web-store/rating/nimelepbpejjlbmoobocpfnjhihnpked.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/chrome-web-store/rating/nimelepbpejjlbmoobocpfnjhihnpked.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='chrome'> Chrome Web Store: </th>
|
||||
<td><img src='/chrome-web-store/rating-count/nimelepbpejjlbmoobocpfnjhihnpked.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/chrome-web-store/rating-count/nimelepbpejjlbmoobocpfnjhihnpked.svg</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3 id="miscellaneous"> Longer Miscellaneous </h3>
|
||||
|
|
Loading…
Reference in New Issue
Block a user