kopia lustrzana https://github.com/badgen/badgen.net
rodzic
163e1cb600
commit
5b838b21e7
|
|
@ -1,4 +1,3 @@
|
|||
const xml2js = require('xml2js')
|
||||
const got = require('../got.js')
|
||||
const millify = require('millify')
|
||||
const stars = require('../utils/stars.js')
|
||||
|
|
@ -6,45 +5,38 @@ const semColor = require('../utils/sem-color.js')
|
|||
const v = require('../utils/version-formatter.js')
|
||||
|
||||
module.exports = async (topic, name) => {
|
||||
const endpoint = `https://services.addons.mozilla.org/en-US/firefox/api/1.5/addon/${name}`
|
||||
const xml = await got(endpoint, { json: false }).then(res => res.body)
|
||||
|
||||
const { addon } = await new Promise((resolve, reject) => {
|
||||
xml2js.parseString(xml, {
|
||||
trim: true,
|
||||
explicitArray: false
|
||||
}, (err, res) => err ? reject(err) : resolve(res))
|
||||
})
|
||||
const endpoint = `https://addons.mozilla.org/api/v3/addons/addon/${name}/`
|
||||
const addon = await got(endpoint).then(res => res.body)
|
||||
|
||||
switch (topic) {
|
||||
case 'v':
|
||||
return {
|
||||
subject: 'mozilla add-on',
|
||||
status: v(addon.version),
|
||||
color: semColor(addon.version)
|
||||
status: v(addon.current_version.version),
|
||||
color: semColor(addon.current_version.version)
|
||||
}
|
||||
case 'users':
|
||||
return {
|
||||
subject: 'users',
|
||||
status: millify(parseInt(addon.daily_users)),
|
||||
status: millify(parseInt(addon.average_daily_users)),
|
||||
color: 'green'
|
||||
}
|
||||
case 'rating':
|
||||
return {
|
||||
subject: 'rating',
|
||||
status: `${Number(addon.rating).toFixed(2)}/5`,
|
||||
status: `${Number(addon.ratings.average).toFixed(2)}/5`,
|
||||
color: 'green'
|
||||
}
|
||||
case 'stars':
|
||||
return {
|
||||
subject: 'stars',
|
||||
status: stars(addon.rating),
|
||||
status: stars(addon.ratings.average),
|
||||
color: 'green'
|
||||
}
|
||||
case 'reviews':
|
||||
return {
|
||||
subject: 'reviews',
|
||||
status: addon.reviews.$.num,
|
||||
status: addon.ratings.count,
|
||||
color: 'green'
|
||||
}
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -10515,11 +10515,6 @@
|
|||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"scheduler": {
|
||||
"version": "0.13.3",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.3.tgz",
|
||||
|
|
@ -12512,20 +12507,6 @@
|
|||
"integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
|
||||
"dev": true
|
||||
},
|
||||
"xml2js": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
||||
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
|
||||
"requires": {
|
||||
"sax": ">=0.6.0",
|
||||
"xmlbuilder": "~9.0.1"
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "9.0.7",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
|
||||
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
|
|
|
|||
|
|
@ -36,8 +36,7 @@
|
|||
"react-debounce-render": "^5.0.0",
|
||||
"semver": "^5.6.0",
|
||||
"serve-handler": "^5.0.8",
|
||||
"serve-marked": "^0.4.0",
|
||||
"xml2js": "^0.4.19"
|
||||
"serve-marked": "^0.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@mdx-js/mdx": "^0.18.1",
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue