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() }) })