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