unpkg/scripts/show-stats.js

59 lines
1.6 KiB
JavaScript

const subDays = require('date-fns/sub_days')
const prettyBytes = require('pretty-bytes')
const table = require('text-table')
const StatsAPI = require('../server/StatsAPI')
const now = new Date()
function createRange(start, end) {
const range = []
while (start < end) range.push(start++)
return range
}
function createPastDays(n) {
return createRange(1, n + 1)
.map(days => subDays(now, days))
.reverse()
}
const pastSevenDays = createPastDays(7)
const pastThirtyDays = createPastDays(30)
Promise.all([
StatsAPI.sumKeys(
pastSevenDays.map(date => `stats-requests-${StatsAPI.createDayKey(date)}`)
),
StatsAPI.sumKeys(
pastSevenDays.map(date => `stats-bandwidth-${StatsAPI.createDayKey(date)}`)
),
StatsAPI.sumKeys(
pastThirtyDays.map(date => `stats-requests-${StatsAPI.createDayKey(date)}`)
),
StatsAPI.sumKeys(
pastThirtyDays.map(date => `stats-bandwidth-${StatsAPI.createDayKey(date)}`)
)
]).then(results => {
console.log('\n## Summary')
console.log('Requests this week: %s', results[0].toLocaleString())
console.log('Bandwidth this week: %s', prettyBytes(results[1]))
console.log('Requests this month: %s', results[2].toLocaleString())
console.log('Bandwidth this month: %s', prettyBytes(results[3]))
StatsAPI.sumTopScores(
pastSevenDays.map(
date => `stats-packageRequests-${StatsAPI.createDayKey(date)}`
)
).then(topPackages => {
console.log('\n## Top Packages This Week')
topPackages.forEach(result => {
result[1] = result[1].toLocaleString()
})
console.log(table(topPackages))
process.exit()
})
})